Hey M.,
Gosh it sounds like you have tried just about everything!
My advise to you would be to really use consistancy. If you are going to let him cry it out (or which ever method you choose), let him cry it out for a good week (or more) it will take that long for him to get it and fall asleep on his own. After he learns how, he'll have an easier time putting himself back to sleep when he wakes up through the night. Let him cry those through the night spells out too, he'll eventually have fewer and fewer. Once you're there (and I assure you it will happen) keep it consistant, same routine, bath, book, then bed. Also keep the same time of night, no matter what.
Some times too, they can get over tired. When my son would get over tired it would take him longer and it would be harder to put him down. Also my son suffers from GURD, which may be the case, ask your DR. Since he's been on meds he doesn't wake up at all (he would have acid reflux throught the night that would wake him up).
I'm not sure if he's in a crib still or not, but try playing with him while he's in it. Or you can just let him play in it by himself. My son loves to play with an aquarium that hangs on the crib bars, and also has a mirrior that ties to the crib. He finally knows how to turn the aquarium on and some times falls asleep watching it.
I don't know if any of this helps, but rest assure, there is an end in sight!
Z.