E.:
My In-Laws live across the country and only see our 16 month daughter once a year, twice if they're lucky. We had the same problem where she didn't want to be held or left alone with them, especially my FIL. I ended up putting together a little photo album of relatives and close friends, both living nearby and long distance, and I'd look through it with her at least once a week and make little comments about each picture.
This past President's weekend, my In-Laws came to visit again and I could see a big difference in the amount of time that it took for our daughter to warm up to them (she even sat in Grandpa's lap, albeit it was only for about 10 seconds). Perhaps you can do the same with your son and talk about how much fun it was to have Grammy visit the last time. But as many of the other moms pointed out, he's at that age. Toddlers around this time are REALLY into things being done in a particular way and order and thrive on repitition and routine even more than ever, which could be why he rejected Grammy trying to get into the mix (case in point, my daughter pitched a fit the other day because I started to blow bubbles during her bath, clearly an offense since that's something only Daddy's supposed to do).
Take heart knowing that it will get better. I think the harder part in all this will be trying to ease Grammy's feelings of dissapointment. As others have commented, just let her know that your son isn't doing it intentionally or maliciously but that he's just at that quirky stage and to hold back a little to allow him to warm up to her on his own terms and time. Good luck!