K.B.
I'm thinking three things:
1. Does he have acid reflux? Your son likes sleeping upright, so try a sleep positioner that puts him on an incline. For the first month of my 4 mos old daughter's life, she would spit up when I layed her down, so the doc recommended putting her on an incline before trying meds for acid reflux. It worked and she grew out of it. Now she sleeps in her crib no problem.
2. It sounds like your son likes to be cozy and confined. Maybe the crib seems too big and spacious to him. You can try making it seem cozier by using one of those head positioner things or placing rolled up towels around him. Do you swaddle him or tuck a blanket in?
3. Try using a crib toy that lights up and plays music to catch his attention and distract him when he is in the crib. I mention these things in every post I write about getting babies to sleep, but they work! Both of my daughters watch and zone out to the toy and learn to fall asleep on their own. VTech and Fisherprice make them. Just Google Crib Toy or check out Amazon.com.
Just keep at it and eventually he will like his crib. Break the habit now before its too late.
Good luck & sweet dreams!