you're experiencing something that is pretty much an inherent problem with the use of the ATmega32U2 (or '16U2 in Arduino boards) as a Serial interface, whilst driving it with a main crystal of 16MHz. Basically its synchronization with the true USART rate is just crappy.Wormfood AVR baud calc
is the best resource to see the issue.
Normally, when both the 32U2 and 328P are running at the same (but incorrect) 16MHz baud rate this is not an issue, but the Goldilocks runs at 20MHz or 22MHz, and relies on the serial rate being accurate to avoid bit slips between the two USART clocks over the entire period of a programming cycle.
During the development phase of the Goldilocks, I spent hours trying to remediate this situation, and eventually fixed both the rate calculations to match the avr-libc calculation (the datasheet calculation is wrong in some cases), and actually slowed down the serial speed to 38,400 baud to improve synchronisation. This provided a working solution for most of the boards, but sometimes (depending on crystal tolerances, etc) it can still be an issue. It is the issue that you are experiencing.
From my 10 overclocked Goldilocks boards, I have three that I can't program with the serial bootloader. And actually these are the three boards that I use day to day. The USART rate generated by the 32U2 on these boards is just wrong enough to prevent larger sketches from being successfully programmed. But these boards still behave perfectly in every other way.
One possible way to fix the issue is to slow the serial bootloader down to 19,200 baud, although there are ALWAYS residual errors at 16MHz, and even though the rate is lower it may still experience slip during the programming cycle. Another would be to change the crystal on the 32U2 to 14.7456MHz which would fix the USART error, but may cause complexity with the USB timing.
But, any solution would involve reprogramming the Goldilocks 1284p bootloader using some kind of AVR-ISP. This then, is the best solution and the one that I use. The most effective solution is to use an AVR-ISP to program the Goldilocks.
I use the AVR-ISPmk2
but I can also recommend the freetronics USBASP
The other advantage to using the AVR-ISP to programme the Goldilocks is that your serial port can remain open during programming, which saves re-enabling the serial terminal each time you go through a programming cycle.
Sorry that I can't provide a simple fix for the issue, but at least you know that you're not alone.