S.L.
We had similar issues, although not quite so extreme. My son always had to have things talked through with him. So we talked about how yucky and stinky poop is, and not to touch his bum because that's where poop comes from. And then he'd get poop smell and germs on his hands. Of course, he didn't fully understand. We also had a problem with him drinking bath water, but telling him that he was drinking water that his bum was sitting in, "Eeew, Gross!" really worked. As far as his wee-wee, tell him that when he plays with it, it hurts it (which he'll probably understand because he knows it hurts, but maybe doesn't understand what he's done to make it hurt). My issue with DS was that in the bath, he'd try to shove his into the opening of the soda bottles we put in there for bath toys. We told him it would get stuck and would hurt really bad, and he eventually stopped.
Maybe if you keep washing his hands every time you catch him with his hands down his pants, and say you have to wash all the yucky bum smell off, he'll start to understand that it's gross.