As others have said, you need to see a qualified behaviourist pronto. The sooner you see them, the less ingrained the behaviours will be, and the more chance there will be of a better outcome
Do be aware that behaviourists vary enormously in quality. Unlike, for example, physiotherapists, literally anyone can call themselves a behaviourist. Some of those people are dangerously clueless and will make your dog irretrievably worse.
I would strongly recommend you seek an APBC or CCAB (list on ASAB website) behaviourist as you will then get someone who actually knows what they're on about. Check your insurance - some policies, Inc PetPlan, will cover a behaviourist.
In the meantime, however, please stop asking your dog to approach or be touched by strangers, or asking strangers to give the dog treats. I completely understand why you've been doing it (it's a common mistake) but you're actually giving the dog a really conflicting set of emotions - "I don't want to approach the scary person, but I do want the treat, but to get the treat I have to approach the scary person and ARGH what do I do?!". For the dog that's scared of strangers, walking away or not approaching is a really positive thing (think flight or fight) and you should think of it that way.
You're unlikely to ever have a social butterfly of a dog, and you may not ever have the sort of dog you can take to the pub (though I hope I'm wrong on that one) but the behaviourist should be able to give you management tools that, if correctly and consistently applied, make the dog feel more confident, less snappy and ultimately safer to be around.