As an example: a simple string reading class that read in engine settings from .txt files was replaced with a 0.5mb xml reading dll
toppest of keks, I knew there will be XML somewhere.
the OP's biggest problem is that he let that guy convince him that he's a better programmer and his way of doing stuff is how it should be. OP's codebase was clean, understandable and extensible - both for him and for other developers on the project. the fact that he can't understand the OOP maze of design patterns created by a 'professional' does not mean he's stupid, it means the 'professional' is a typical enterprise cargo cultists who introduces design patterns for the sake of using design patterns, doesn't respect the project's existing coding conventions and creates complex solutions to simple problems. I haven't seen how either of them code but I assume OP is actually a better programmer than the 'professional'.
just roll back to the non-refactiored version, kick the 'professional' out and never look back. your game works, you know how it works, other programmers know how it works and everyone is able to develop it further. this is what matters, not some cargo cult bullshit about factories and observers.