I tracked it down. Not surprisingly, it was not a GP thing. Turning off hooks fixed it, so I enabled hooks again and disabled hook content until the page behaved properly. It was a script I had in the footer hook. Thank you for making GP Premium so compartmentalised. Once I started thinking about what in Premium could be causing the problem (and not willing to work without that plugin) it was a simple task to track down the culprit.
Thanks for the response, and I am thrilled to have the demo shop to compare.