Thanks very much for this. I have switched to KDE, because it seemed that GNOME was making problems for other applications, not just Emacs; for example, Firefox windows were also opening small (but then resizing larger).
I did do one final test before switching, which was to check that I still experienced the problem in a default setup (so that it wasn't due to my user settings).
I do have another machine that is still using GNOME, so I will try to test your patch before I switch it to KDE too.