Those are reasons. They aren't excuses. We all have our own shitty issues but hiding behind them does not get us anywhere fast. Accepting them, understanding them, and working on them is how she can grow up and mature to be a better person. Something you could use this time for is working on yourself. You've highlighted your own shortcomings, but that doesn't mean a damn thing if you don't work on them.
Don't toot your own horn here thinking that you did everything right and treated her like a princess. Controlling is not treating her good. You can buy her lots of things, take her on amazing dates, and spoil the crap out of her. Trying to control her, not listening to her, and taking her for granted is not how you treat a woman. You didn't trust her. That's understandable. The relationship couldn't progress and I'm sure she suffered because of it. Never hurt her? Maybe you don't realize what you have done.
And I think it shows from the breaking up and getting back together again and again. Nothing changed, nothing was solved, nobody was listening. What's to say that it wouldn't happen again? You are finally asking the questions and reaching out for help. I think you should really focus on yourself and concentrate on what you need to do more so than on what she is doing and where she ends up. Things are strained, there is alot of hurt, you have a tough history. A future between you two isn't very likely. But the silver lining is that if it doesn't work out with her, it can with somebody else. Somebody you don't have a bad history with. Somebody you can have a fresh start with. Working on yourself will help you ensure that you won't screw it up again on your part.
Waking up next to a beautiful girl,
Step outside and say hello to my beautiful world.