I am having the same or similar problem with scripting.
I am using sftp to connect to a server, and attempting to download a file. I want to preserve the timestamp, so I use
get -preservetime /path/to/file/filename.txt G:\test\
Where G is a mounted network drive (NTFS, if it matters.)
And the transfer is successful, but the timestamp does not get set.
The same happens if G is changed to local drive C (NTFS, if it matters.)
The puzzling part, to me, is that if I use the GUI, and make sure the preserve timestamps box is checked, it works just fine. So, something is wrong with just the scripting version of get.