My situation is not even comparable to yours so please don't think I am being empathetic. I am merely comparing your self hatred to my self hatred.
Because of my religious upbringing I was always hard on myself.
Guilt. Every time I did something I had been taught was wrong, I was mega ashamed of myself and displayed self loathing. I did that for 50 years. Literally. Until I just got tired of that mind-set.
First of all, I started reading books outside of my religious beliefs. I realized that my religion was not based on Truth but merely a set of beliefs that may or may not be true (I eventually chose not to believe them).
Old age changed my perspective on how I view the world and how I react to how the world views me. Life has a way of wearing one down and sanding off all those sharp edges we are all born with.
With that said, now I accept that I am human. The creators/creator/whatever, made me this way. So when I mess up, I mess up. So what? I don't apologize for it anymore. Messing up is not a sign of weakness. It is merely the dark side of me (we all have some of that) expressing itself. Again, so what?
I stopped basing my self esteem and self love on other people. I decided that they are not the experts on Me. I am. I know what I have been through and what I need, where I need to go. I strive to create an environment that is copacetic to my growth and support.
When so called friends try to pull me down and stamp on my heart with their insensitive feedback I have learned to walk away. I tell myself that I am better than that. They have no right to say or do those things. By walking away, I learned that I am my own best company. Learning not to be lonely. But to celebrate my aloneness. I now feel more comfortable by myself than i do around friends after many years of learning how to do this.
For the most part, I am a good person at heart. But I allow myself to be imperfect to. And for that voice within me that says, "Shame on you" I merely look up and say, "I'm here, we will discuss this when I die and I can see you face to face. Now go away."
In short, learn to accept yourself for who you are right now
, not who you hope to be someday. You can only learn to do that by living one day at a time.