I don’t know what to tell you. You seem to be asking us to magically fix your mistakes.
In the time you’ve spent worrying about a correct/elegant codebase you could have already progressed a fair amount. Yes, modern engines suck, but then your only choice left is to not use one.
If you ask me, a good game must internally be what you call a clone generator, as it allows the engine to be specialized and optimized for that one purpose. Any changes can be done by changing the engine itself. This is best done by just making the game, without a pre-made engine.