I felt like I was reading about myself when I reading this and my heart totally goes out to you. I experience all of this almost exactly like you do! My mom who I also love so much can rarely hug me because it makes me so nervous and uncomfortable. When I am in a bad place mentally, I've hit or screamed at people who touch me from behind or hug me unexpectedly. It's so embarrassing but in that moment my brain immediately goes into "danger mode" and I think that "he's" behind me or touching me all over again.
For me, the only person I am semi-comfortable with touching is my best friend. When I first had to address not touching me with her she took it upon her self to start out with just a simple quick touch on the arm, shoulder, high five, fist bump, or other really quick contact after asking me if I was ok with it and in a good space. If I wasn't she wouldn't touch me and leave it alone. We worked slowly until the point where she could give me a side hug or just be in my personal space (I have a huge problem with people even being near me) and me not feeling so scared. Then we worked up to side hugs and now she can give me a very quick, almost full hug and I feel somewhat safe. Granted this was over a period of YEARS so it takes a long time for that comfort to be built up, at least in my experience.
If you have a close friend, or even your mom, you could ask them to do kind of the same thing for you. Just small touches when you feel comfortable. Starting out with a hug is really scary as hugs are confining and you have to touch a lot of the other person. In a way its like starting with a 10k when you are just learning to run. :)
I don't know if I can help you with unexpected touch though as I still struggle a lot with that myself.
Good luck!