What virtual display are you running on the server via SSH? My guess would be :0, so Geany stores that the dialog is on :0 and then when you run it locally it pops up on :0 which is the main screen.
Quick check of SSH doc, its the one below.
Either that or its a display (like :2) that doesn't exist on your local machine so the WM just shrugs and puts Geany on the screen its started from and the dialog on :0
Cheers Lex
PS Yes, fixing this sort of thing is not very portable as I know from past heartache.