What are you staying for at this point? This man has broken your boundaries multiple times, intentionally. He obviously does not care that he does that. He does not and will not respect you and you cannot trust him. You say it yourself - he treats you badly. End the relationship, move and stop tolerating being treated like dirt. Turn all the love and respect you have for him to love and respect for yourself, you deserve better and you know it.
Don’t bother wasting your time and energy feeling bad and guilty - where’s his guilt for treating you horrendously time and time again??? If anyone should feel bad it’s him. You don’t need to feel bad for treating yourself with more respect than he has for you. Go back to your family and friends ❤️