Avant tout : ne donnez pas tant de détails de conception ni d’implémentation de votre projet !!
Si nécessaire, reformulez dans un autre cadre (d'ailleurs, le faire vraiment [= créer un autre code plus simple] vous permettrait très certainement de trouver la réponse)
Pour vous répondre : revenez aux fondamentaux du cours ; vous ne pouvez pas ne pas avoir de polymorphisme (y compris donc sur le dessin) si vous avez vraiment suivi tous les principes (pointeurs + virtual). Si ce n'est pas le cas c'est que vous avez cassé quelque chose quelque part (soit oublié un virtual, soit, par exemple, travaillé sur une copie au lieu d'un pointeur/d'une référence).
Bref, revenez aux fondamentaux (et faire ce qui DOIT être), plutot que de chercher des chemins détournés qui, en effet, posent plus de problèmes qu'ils n'en résolvent.