My experience with that is that you probably aren't right for each other. My ex-husband cheated on me and every girl before me, but he's been in a solid relationship with someone else for three years now and has remained faithful. Not because he 'changed', I think he just found the person that brought out the better side of him.
Sounds to me like you two aren't a match. Best thing you can do for both of you is move on, and you'll find the person that makes you be a better person, and someone that you make happy.
Live as if you were to die tomorrow. Learn as if you were to live forever. - Mohandas Gandhi