I have spent all evening on this, with the following findings and following ideas.
With slower baud rates (4800) it works fine, when its increased to 19.2 then the problems start.
I notice that the fist 2 bytes are ok then it goes out of sync then back in sync and out again.
So im fairly sure its a timing issue. looking at the SoftSerial code there are calculations using % (mod)
of the buffer size while the head chases the tail etc in the circular buffer, my guess is that when its 512
the calculation is either optimised or just executes faster than when the buffer size is 511.
I will investigate further.
oh yeh and I just checked this is in the ISR
This is with IDE 1.0.1 16Mhz 328 nano