If you get him his own bed, it might make things a little worse since he can just get up and run wherever he wants. You will want to fix this problem first...and soon because he is nearing the age when he really is too old to be in a crib.
I don't know what to tell you about how he is with his grandparents. If they don't have respect for your wishes while you leave him with them with regard to sleeping, what else are they doing behind your back? Unless it is completely necessary for you to let him stay over there, I recommend that you discontinue those overnighters until a better time. Your wishes need to be respected, especially when it is having such a repercussion on your baby's life and your own too.
A 2 hour nap during the day isn't bad for a child his age. Nine is a good bedtime too. He should wake around 8 am at that rate, given the average rate of sleep most toddlers need.
http://www.babycenter.com/0_how-much-sleep
-does-your-child-need_7645.bc
I know sleep schedules can be hard. I have never had good sleepers, save maybe one with all 6 of my children. The key is to be very firm and consistent, and make sure that they know you will not give in. Give in once and you might have to go back to square one.
The bedtime routine shouldn't take more than 30 minutes at the most. You can read stories to him, but avoid anything with lights and sounds that would be stimulating. You can also make some white noise in his room which could help him sleep better.
Never, ever, let him into your own bed.
If he cries in the middle of the night, you can start going to his room, hold him at first if you must, but never take him out of the room. After a few days, see him, touch him, but do not pick him up...make him comfortable. You should not be in the room any more than 5 minutes. After a few days, you can sit with him but do not touch him...then take it to the next level and don't go in at all.
He will get the message that he needs to do this on his own. We will be able to comfort himself and get back to sleep on his own. It might take a couple weeks at the most, but you will be glad you did.
I hope that helps.