Некоторые вещи попробовать:
Вы абсолютно на 100% уверены, что:
a) storeFile () возвращает true
б) вы не выбрасываете где-то исключение
если вы проходите через него в отладчике, то завершает ли он каждый вызов в вашей подпрограмме, а файл все еще заканчивается как частичный на сервере ftp?
Какая часть файла не попадает на FTP-сервер? Создайте тестовый файл, содержащий байты 0-255, повторенные 5 или 10 раз, затем попробуйте загрузить его. Затем загрузите результат и посмотрите, что становится убитым.