Why can't I scp/sftp/rsync to UPPMAX when I can connect with ssh?

It's likely that you output some text in your login scripts.

Utilities like scp/rsync and in some cases sftp works only if your login scripts do not produce any output to stdout.

IF you want to produce output you MUST make sure they do it only for interactive logins or send output to stderr.

You can use the following code (assuming bash):

tty -s && echo "Interactive print stuff here" 


if tty -s; then 
echo "Interactive print stuff here"

You might also want to look at the guide for transferring files when using two factor authentication.