You need to tell her EXACTLY how you feel..
calmly. Girls do not like to be yelled at, at least i know i dont, and if my boyfriend yells at me, i always end up yelling back and it is not pretty lol. but anyways, about the ex, you really brought it upon yourself by telling her to go talk to him. Although, you shouldn't mind if she occasionally exchanges words with him. I mean they dated 4 years and have a lot of history, so its always nice to see how they are, how their parents are, and so on- it does NOT mean she wants to be with him anymore. If your relationship is hurt because of the arguement, you need to bring it up sometime, even if it happened awhile back, and just tell her how sorry you are and that you thought about it and you realize you over-reacted and screwed up. Sometimes something as simple as that can bring some peace back into the relationship. DONT let yourself get mad during that conversation though, even if she starts to get offensive, you got to just let it go.
About the sex, talk to her about it. Maybe there's something that isn't going too good during it. Ask her what you need to do to make it better- if shes enjoying it than shell want to have it more often.
About her trying to "change you", she just wants to make things good and right. Listen to her and take what she says to heart. Don't be a grump to her, you'll ruin the relationship if you act like that, trust me, it ruined my parents relationship. The key to your problem is you learning to calm down and have a real conversation. You don't get anywhere by yelling- it makes it worse. Just always remember when you start getting really upset to stay calm, even if she gets offensive with you, you got to show her that you can handle your emotions. I hope you can fix things with your girl. Good luck and if you need anything else don't hesitate to ask
