Não sei por que não está funcionando - seu exemplo simples funciona nos meus testes.
Como uma possível sugestão, seus curingas podem ter que ser escapados para evitar serem interpretados pelo seu shell local, antes que são passados para o shell remoto. Assim, com o seu comando, o seu shell local pode estar procurando por arquivos correspondentes ao * .xml no seu diretório de trabalho atual. Tente encapsular a parte remota do comando com aspas simples, como:
scp [email protected]:'/student/class/Intermediate/*.xml' .