Hi L.,
Two things I can think of, the first being the most important. (I've had 4 kids and can understand your frustration! My kids are from 19 - 27!)
I think your son has just gotten used to the warmtn and comfort of sleeping with people, and he knows when he hits the bed that it is not what he wants, he wants a nice warm body to sleep with, and who can blame him really? But, my 3rd child slept with me for MONTHS and MONTHS and the longer you do not break this habit, the harder it is to break it. Maybe if you hold him until he goes to sleep in your arms, but before he goes to sleep, put a baby blanket between your body and his, wadded up a bit. Then when you lay him down, make sure the blanket, which will retain your body heat, is what he feels when you lay him down, and not the cold mattress. Also, maybe you can warm his mattress a bit with a heating pad first, then of course have it removed and unplugged before you put him to bed. Anyway, if you have the blanket close to him, hopefully it will retain your mommy smell, and your warmth, long enough for him to remain asleep and eventually he will get used to sleeping by himself again.
Good luck.
Also, the 2nd thing I wanted to mention is that I personally can't sleep with even a crack of light coming underneath the door in my bedroom. It might be possible that a light in the room could disrupt his sleep also.
Let me know if any of this helps!!
Sheila
P.S. In reading your note again, you say he will fall asleep on the couch (by himself I guess..) and he takes naps ok in the day, so there is hope! Maybe he just does not like his mattress in the playpen. ?? Good luck