We can't answer that: you need to look at exactly what is happening.
It's unlikely to be the download process itself - or none of the video, music, or even image files downloaded daily would ever work, and we would have noticed that by now! :laugh:
So start by copying a file to your server using FTP so it in definitely binary identical, and then download it using your software.
Then compare the original file and the downloaded version using a binary comparer: a quick google will find you many, many of them:
Google[
^]
Then look and see exactly what the difference is. I'm betting there isn't one and that it's an artefact of character sets in the processing application or similar.