I can't tell you for sure. I am not an expert but I did have some experience with using the session that I hoped would be of help to you. I belive that you should be able to use the session to store this information but I don't know for sure. I have very little experience with file upload but I may offer some ideas at least.
So if I understand right, they fill out information and post the form. Then you do the validation on their input. And take them back to the page if something in the validation failed. When they post the form the file or files are uploaded to a temp directory on the server.
You should be able to get information about the file(s) that you use to then move the file(s) to the perminet directory. I would think you should be able to store the array of information about the temp files in the session for later use but I'm not sure exactly how you should do it.
Everything about the file is stored in $_FILES which you can access.
If the input name was called file_upload then it would all be stored under file_upload
$_FILES["file_upload"]
For instance you can extract the name of the file from $_FILES["file_upload"] which you probably already do if you are currently uploading files.
$strFileName = trim($_FILES["file_upload"]["name"]);
You should be able to store $_FILES["file_upload"] in the session for later use to save the file in the correct directory with they pass all validation.
$FILES['file_upload']['name']
The original name of the file on the client machine.
$FILES['file_upload']['type']
The mime type of the file, if the browser provided this information. An example would be "image/gif".
$FILES['file_upload']['size']
The size, in bytes, of the uploaded file.
$FILES['file_upload']['tmp_name']
The temporary filename of the file in which the uploaded file was stored on the server.
$_FILES['file_upload']['error']
The error code associated with this file upload. ['error'] was added in PHP 4.2.0.
I don't think $FILES contains the original path of the file on the clients machine so I don't know how you could populate the field with the users file path if you send them back to the form. If you check for file_upload in $GET or $_POST. The original client directory path may be found there. If so you might be able to use it to populate the value of the file input fields on the first page... I don't know if this is possible.
But you do have the file that was uploaded to the temp directory. Maybe you could display to the user the list of files that have been uploaded and then let them override one if needed. Or maybe there is some way to populate the field for them so they can upload it again.
I don't think I solved your problem fully but maybe this will help you in some way to get to a solution.