Can I simplify this or do I have to take this to the ideas forum for it to ask for abstract type support and activity assignment?

I feel like I'm DRYing here. P.S. I have been told that 1/1 associations are preferable over inheritance unless absolutely necessary, so the microflow is actually bigger, as it adds another column of 8 rows at the end to retrieve Person.   Here's the 1/1 associations:  
1 answers

First question would be: what is the purpose of having so many different people types. Do you need to store different information per type, or do you need to be able to store other type of relations?

In this case someone can only be one type (trainer or trainee),  but are there situations where you could be both (trainer for course A, trainee for course B)? Then this would not work. I would suggest to look into a 1-1 relation between Acount and Person and create a  relation between Person and Type using an extra object to be able to store additional information.

But again, it depends on the goal you want to achieve.