Hola,
Bajate a tu equipo los dos ficheros (el del servidor A y el del B) y mira si tienen el mismo tamaño. Y si tienes un programa que compare ficheros binarios, usalo para ver si ha modificado algo.
Posibles razones del fallo:
1.- Que no le de tiempo a ejecutarse el script. En caso de que no le diera tiempo deberia mostrarte un error (quizas no). Prueba a poner un echo 'Ya esta' al final del script. Si sale es que le ha dado tiempo ha ejecutar todo el script. Si no, deberias mirar
set_time_limit
2.- Que no funcione bien tu codigo que elige el modo de la transferencia. Para comprobarlo haz dentro del bucle despues de asignar $mode un echo $path.":".$mode; para comprobar que elige bien el modo.
Suerte.