Ma quando fai la prova (che non ha successo) con i file grandi, dove posizioni il puntatore e quanti byte leggi?
Cioè, con precisione, quali sono i valori esatti dei parametri che passi quando hai il problema ?
Non quelli che pensi debbano essere, ma quelli che hai visto durante il debug ...