Why might SFTP slow down or not fully upload files?

Your file transfer speeds do not depend entirely on the application you are using. Also consider other factors, such as your connection type (Dial-up, DSL, cable?). Sometimes it's the other end (the server), and there's nothing you can do but wait.

Try enabling or disabling PASV mode, see if that does anything. Again, it may have nothing to do with anything on your computer, it may be the server you are trying to transfer files to/from. A way to test this would be to connect to a completely different server, and see if there's any change in speed and transferability.

I found the culprit. It was my firewall--Sygate. I forgot I was testing it out (I usually use ZoneAlarm). But when I closed it out, everything uploaded perfectly. I tried reconfiguring Sygate but I couldn't see where to change anything (it was set to allow SmartFTP) so now I'm back with ZoneAlarm.