I see... since you are validating the $_FILES["ProductThumbnail"] value directly, you didn't need to move the file upload code above the validation. In fact, that deletes the temp file and caused the validation to fail.
I moved the file upload code back down below the validation and that seems to have resolved this issue.