Hacerlo como dices es imposible porque no se le puede poner un valor a un input file (échale un vistazo a esto si quieres:
"input file value".
Se me ocurre una alternativa. Ya que tienes la validación del formulario en php, puedes hacer que el archivo se suba a la carpeta temporal mientras se valida y si no se valida, poner el nombre del archivo debajo del input file; si lo cambia, borrar el anterior y si el usuario abandona el proceso borrarla igualmente, solo moverías el archivo a la carpeta definitiva si la validación es exitosa.
Se trata de retener el archivo durante la validación, no de volver a subirlo una y otra vez.
Espero que sirva, aunque es laborioso.