Have you thought about getting him checked by a vet. Could he be in some discomfort or pain? Just a thought.
I have a terrier that used to be so depressed, he didn't act like a puppy should. He didn't play or run around, very grumpy. So I took him to the vets and eventually after trying to convince the vet that he didn't seem happy, they investigated and found that he was born without a hip and socket joint so his joint was rubbing bone on bone and causing him a lot of pain. We had him operated on and now he is a different dog. So much more happier.
BUT he can still be snappy, but ONLY to strangers who insist on approaching him in a silly voice and proceed to lear over him. Poor thing is scared half to death so he snaps at them. Can't blame him on that one. He has never done it to us, my family or my friends. Not even the vet!
WE also changed his diet and now he has no food or treats with added colours or preservatives. You have to look at the packages very closely as some claim to be natural but in fact are not! We have noticed the difference in him so much. He is more calm and laid back now.
I'm not sure what the answer is but please don't give up on him.
Good luck,