1. Lets look at the facts. She's obviously very immature, selfish, selb absorbed and lazy.
Is that who you want to be with? She clearly takes you for granted, doesn't respect your wishes (regarding hygiene OR the emails, I'll guess in other areas too), and isn't enough of an adult to sort her life out - relying on you and her parents.
If you're turning to an internet forum for relationship advice, to me that suggests that there is something fundamentally wrong with the relationship. I'm not naive enough to suggest that any relationship is perfect - of course not, every couple has their problems. The difference between a succesful and an unsuccessful relationship is in being able to work through them. It sounds like you've been putting up with a lot of these issues from day 1, and over the years, she has only gotten worse instead of better.
The very fact that you are asking "should I leave her" would suggest to me that you've already decided - you just need someone to convince you its the right thing to do. But, as you said - part of you doesn't want to. So lets look at that. Your post didn't mention much in the way of good points. Why are you with her? Do you love her? Are you ever truly happy? Is there anything - really, honestly - that she gives you that you couldn't get from another person? Someone who respects you, has a level of maturity that matches your own, and someone who puts your happiness at least on par with their own?
The decision, ultimately, is yours. But it sounds like you've already made it.
2. Whether she was cheating or not depends upon your own definition of cheating. Do you feel cheated? If she was sexting another person, would it be the same? Is it any different just because its "roleplay" in an email? Does it bother you that she is in contact with other people to get off, against your wishes? If your answers are yes, yes, no and yes respectively, then she's cheating.