What I want is for WinSCP to upload a file whenever I change it on the local machine.
It's supposed to do that but it doesn't.
Sorry, but this is just playing with words. No it's not supposed to do that. WinSCP does, what it does. I'm sorry it does not work for you. But I'm probably not going to reimplement whole functionality only because your server is limited.
Perhaps this thread should start over at the "That should not happen" because the user does not appear to understand why it Should Not Happen with SFTP?
Answer: because the underlying SSH protocol is supposed to be using UTC in order to have the client and server report timestamps on the same basis. Client translates filesystem timestamps to UTC. Server does same.
However, SFTP implementations appear to not always do UTC translations correctly with an added DST consideration. It also appears one way to check if this is the case is to compare timestamps reported with a sftp "ls -l" to timestamps reported by a sftp "ls -ln" ('n' to cause numeric/raw values to be used).
So rather than leave this thread on a rather sour note, perhaps manually checking the output of "ls -l" and "ls -ln" with SFTP and report back?