Here is a project that reproduce the problem.
I provided files in order to test, and a final.txt file, that correspond to the result.
You just need to change the connections information and file path.
As you can see, this occurs only when the file uploaded is smaller than the existing file on the server (and with the same name ^^).
As I said before, if I use client.Open(filePath, FileMode.Created, FileAccess.Write) instead of client.OpenWrite(filePath), there is no problem.
But may be this is a wanted behavior.