Speaking as someone who adores real ceviche, I would say that avocado is actually the best texture substitute for whitefish ceviche. Most fish cured in citrus acids is actually quite soft and buttery in texture. Ripe mango or ripe plantain would also be a good texture match, but has a strong flavor.
Shellfish, however, toughen up in the curing, so I'd use hearts of palm for those. Young coconut would also be good texturally, but also has a very strong flavor that would throw people off. Underripe jackfruit, the standby for vegan everything, might work well also.
So ... if you're preparing a "vegan ceviche", I'd recommend a mix of avocado and hearts of palm, in lime juice and spices. Which is a good salad even if you weren't trying to imitate anything.
Tofu is just wrong for all varieties of ceviche.