Correct, you should not load few bytes from Firmware, few bytes from tinybooter and come back with firmware.
Once loaded you should load whole file, finish it before jump to another file.
I was not clear about it. Give us some code that has the exception, please?
Do you mean load 10K, then 10K.... until end of file that doesn't work?