The faster the connection (transfer speed) is, the larger chunks of the file WinsCP asks for in each read request. Your server seem to return at most 34000 bytes at once. When WinSCP asked for more, it will have to then ask for the missing bytes. But as it asked for further bytes meanwhile, tt has to ask for those missing bytes out of the order. When WinSCP does that, you servers starts behaving incorrectly. If you slow the speed enough so that WinsCP never asks for more than 34000 bytes at once, the problem is mitigated.