It is basically the same problem as what this post describes. Once the file has been transferred fully, WinSCP simply starts uploading the file again, and will do this over and over.
But, the catch is that it has to take a good while to transfer, like for example 30 minutes, or the bug will not occur. If completion time is rather short (like 10 minutes or something) then the bug does not occur for some reason.
As a workaround I currently have to babysit WinSCP until the file has about 30 seconds remaining, then I cancel the queue (so the queue gets emptied), then I add the file again and when it prompts me to overwrite the file, I select to resume the file and then when it completes it will behave normally and stop. If I try to pause instead of cancelling the queue, and then unpause, the same issue will occur, it seems I *have* to empty the queue.
As a test I have reproduced this issue by uploading a 248MB file with the speed limited at 128KB/sec and have created a log (invalid link removed by Admin) of level "Debug 2".