I would start by measuring the speed of the dumbest TCP stream possible. A plain FTP (not SFTP or FTPS) would do it. If for some reason FTP doesn't work (firewalls can be an issue), try netcat.
FTP just literally throws bytes at a socket. As long as it's using the full TCP packet size, and we're talking about a single file, you can't use TCP more efficiently. So this will give you a benchmark of what can be achieved between the two hosts.
(There are some UDP-based protocols that can go faster over WAN by avoiding the wait for TCP ACK packets, but none of these is a commonly used standard).
Note, however, that FTP does not compress, so it may take longer for certain kinds of data. This is good for our aim of measuring raw TCP throughput.
If FTP is slow/asymmetric too, then it may just be that there's an asymmetric link along the route between these machines. You could do some further diagnosis by running a Wireshark sniffer on both ends, and checking the trace for lost packets etc.
If FTP is fast and symmetrical, then you have some other problem. Without delving in deep, it's hard to guess, and there's a lot of possibilities. For example, one machine's SSH might be configured to compress while the other is not.