The mGB ROM is actually only 32k, the upper 32k are empty. I don't know why it has been padded to 64k.
When nanoloop receives a ROM for A or B, it waits till 32k are received and then starts the ROM.
If mGB or any other ROM starts but shows strange behaviour, that most likely has nothing to do with the transfer. If the ROM starts at all, that means the full 32k were transferred and you also can assume that data were intact. If bytes were missed, it wouldn't start at all but hang at the nanoloop boot screen, waiting for 32k to complete. If bytes were corrupt, the ROM would probably crash immediately.
And yes, for unknown reasons, you first have to press B in mGB.