Cita: ¿podría ser que el fichero anterior se quedara residente o temporal en el servidor y no me cogiera el que lo sustituye?
No, .. en "temporal" no .. pero si que puede ocurrirte que tu archivo no llega a donde indicas cuando haces el move_uploaded_file() .. o no tomas la ruta exacta donde está tu .SQL en la sentencia SQL ...
Para ver esto mejor .. las funciones como system() .. o exec() y afines tienen parámetros para obtener el resultado y salida que ocasiona la ejecución de tu comando .. tal vez tengas algún problema con la ejecución de "mysqldump" pero no lo vé desde PHP.
Revisa la documentación de:
www.php.net/system
ó usa exec() (que si que tiene más parámetro para obtener la "salida" que se ocasiona al ejecutar tu comando + errores de la ejecución en sí del comando ...)
Un saludo,