I'm not surprised most people here advise you to break up with this girl, but in my opinion you should really think twice about it.
The only concrete thing where she went wrong is by not telling you about the STD (which is, quite a harmless one compared to HIV or other STDs). I can imagine she is ashamed of it and I would definitely be angry, but if you've been together with this girl for 3.5 years, it should not be a dealbreaker to be honest.
Re. talking to your ex-boyfriends - That's a decision your girlfriend has to make herself. To be honest I do not think you are in any position to judge her on this. As long as she does not cheat on you, I don't see the problem. My current girlfriend stays in touch with some of her ex boyfriends / dates as well. She knew them before she met me, so who I am to judge who she should be talking to, especially when it comes to people she knows longer than me and has had a deep connection with.
I stay in touch with some of my ex gfs as well and I can tell you I'd never have any intention of sleeping with them again, but you had a great time with these girls in the past, so why cut it off?
The same goes for her girlfriends - sneaking behind someone else's back is really low, but it happens - and assuming she knows her friends for quite a while, you are not in a position to judge her hanging out with them.
Sure mate, I agree there are some red flags here and if you only met this girl recently, I would think twice about starting a relationship with her. But you've been together for 3.5 years - assuming she never cheated on you and you have an amazing time together, why end it?
---
EDIT: I just noticed the daddy issues and the 'never been a great gf to me'. To be honest if that's how you feel about her, ignore my advise above and find a better girl - you seem like a great guy. But if you feel like she could improve and truly loves you, go for it