C.B.
Oh, yes. The nicer you are, the sorrier they make you! Been there, done that!
It's time for tough love which is extremely difficult but does work. He doesn't want a relationship with you - you talk too much or whatever, so quit talking to him. The only thing being accomplished by you talking to him is you are getting stressed out.
He very well may not have a relationship with you when he first comes of age. Heck, he may not until he has his own family. BUT eventually he will. You cannot force yourself on him; trying to will only make things worse.
My best advice to you is quit acting like you care so much and quit trying to make him happy. There is nothing you will do that will make him happy other than handing him a butt-load of cash and leaving him alone to blow it. That would make him happy, but don't doubt that when the cash was gone, it would be your fault he didn't have anything to show for it.
One thing you might think about - personality changes and mood swings are signs of drug/alcohol use. He may be using. I wouldn't confront him about it because he will only lie and again it will only serve to add more stress to you. Just keep that in the back of your mind and use it for your own information.
Good luck! I know this is heartbreaking!
P.S. I just read your SWH. What you did wrong was you were too nice. He knows you will feel bad and that's why he does these things. In the future, just say sorry, find your own way home and hang up. After that, don't even read his texts because you know they are going to be hurtful and rude.
You have to show this kid that he doesn't make your world go round and that he better learn how to fit in because the world does not revolve around him.
Finally, you need to show your other kids that you will not stand for being treated this way. If they think you will tolerate it, they will follow suit.
Stand up for yourself. You are the adult; don't let him call the shots!