The FAT32 (and FAT) filesystem has a maximum timestamp resolution of 2 seconds, whereas most remote systems are running some form of UNIX, which has 1-second resolution.
This means that a remote file with a timestamp of "2005-01-05 14:42:07" will be stored locally with a timestamp of "2005-01-05 14:42:08", if it is written to a FAT32 filesystem.
Then, the next time you synchronise (from local FAT32 system to remote system), WinSCP sees the one second difference and decides that it needs to reupload the file.
So: when performing the timestamp checks for synchronisation, WinSCP should ignore a one-second difference -- only triggering transfer if the difference is two seconds or more.
I ran into this problem in WinSCP 3.7.4 (which is I think the most recent release).