How to make custom entity type revisionable with existing content?
Yes, it is highly complicated and there is currently no easy for such a switch.

Upgrade path between revisionable / non-revisionable entities is the core issue to make this easier. You could rely on the patch there but I'm not sure if it is fully working right now.