There are too many issues to deal with on a forum like this. You are better off talking with people who can provide ongoing support to you.
I would make a couple of observations though:
- your self esteem is always
worth standing up for. It's something every person needs to work on (working on your self esteem, and standing up for yourself - respectfully)
- When a person you care about speaks to you with disrespect, it is worth standing up for (eg please don't speak to me in a condescending tone of voice).
- Usually the way
a person speaks says a lot more than the content of what they are saying. This goes for anything he says to you, and also, for anything you say to him.
- Often, when you can't work out why he is behaving the way he is (or you can't work out why you are behaving the way you are) it comes back to the tone of voice that the person is using. If things suddenly go haywire, it's worth taking a step back and doing a mental review of how things were just said. All that said, some people can be trouble, no matter what you do, or how you say something.
Probably the best advice I can give is: work on your self esteem, work on standing up for yourself, work on your communication skills. This might require educating yourself with some books, or watching people who have these things / skills, and it will always involve practice (even the best still practice) - peoples lives keep improving as they gain these sort of things.