If you guys have just been patiently waiting & not complaining to that shop much, I would consider giving the shop just over two weeks to finish the car seeing thats what they told you in the first place. put a date on it & let them know you plan to pick up the car & the amount of money they should be owed to you. Unless, no work has been done, then might as well go pick it up now, but take a lot of pictures when you get there so you can (hopefully) get your money back. This way maybe he will get what he wanted in the first place & you won't have to deal with going to another shop & possibly loosing a bunch of money & more time? Maybe the shop thinks they can keep putting it off if nobody is complaining, but 6 months seems crazy if they told you 2 weeks. I am also curious what kind of work we are talking about & the money involved.
I am guessing this body shop has a lot of cars sitting around & the bread & butter is likely in lighter insurance work? Sounds like your grandsons car keeps getting pushed aside & the shop doesn't tell anybody they are too busy? Sucks either way.