Is there an ECJ implementation available to remove individuals based on
their similarity from the population to increase/maintain diversity?

If not what would be the best way to implement the removal?

(1) Using Exchanger with custom SelectionMethod ?
(2) Using BreedingPipeline with custom SelectionMethod ?

furthermore how would I build a random individual to replace the similar ones?

Does anybody have experience with early convergence and how to avoid this?

I am using GP in ECJ to solve a classification problem. I have used
different fittness methods (composed and multi-objective) but always run
into the early convergence problem. 

Firstly tried to bring in diversity with high mutation rates but it did not
resolve the premature convergence of the whole population. Doing some
research I came across the idea from Mawhinney et al to remove similarity by
replacing by new random individuals.

Thanks for any hints or comments!