La SoftwareSerial ha un buffer di 64 bytes, qualunque byte ricevuto quando il buffer è pieno viene perso.
Ho idea che tu perda troppo tempo tra un carattere e l'altro nel tuo ciclo while e ... ti perdi i caratteri.
Prova a trasmettere a blocchi che nel while ricevi e poggi in SRAM velocemente, prima di far partire il blocco successivo fai tutto quello che serve sul blocco ricevito (salvataggio in EEPROM, stampa, ecc.) e poi passi al blocco seguente.
Guglielmo
P.S.: Aumentare la velocità peggiora solo la cosa, inoltre, nonostante quello che c'è scritto, NON usare la SoftwareSerial oltre i 9600 perché gli errori ed i problemi crescono a dismisura.