I recognize your effort, 10 games is a certainly an accomplishment, no matter the size of the games in question.
I'm sure that throughout that endeavor, your experience in programming has grown. However, our experience grows in many ways, and programming, overall, is a big beast to tackle. So, like always, there may be areas in which we need to improve that we haven't been paying much attention to.
I see 2 possible problems here: 1) A classic problem of tightly coupled code. What this means is that your method clearly forces apply several changes in your codebase whenever you need to apply a small change somewhere. This is a problem that gets more and more noticeable, the larger the size of your code base, and is usually solved through programming patterns, software architecture, and similar software engineering solutions.
However, you mention you've done a lot of research into programming patterns, which either means you're lacking in your program architecture, or...
2) Perhaps you're attempting to make projects that are simply too big for one single person, and need to consider bringing additional programming brawn. You don't mention whether you're alone or not, so I don't know if this even applies.
I hope any of these alternatives can help you in your problem :)