Ok, I think I finally understood the issue and what's going on. What we have when we use Jenkins' File parameter is a FileParameterValue.
The Jelly file used to render is very simple and it seems like the part we are missing here is that the input field's name must be "file", not "value".
So in summary, the only thing I changed from your example to get it working was: <input name="file" type="file" jsonAware="true" />
To match Jenkins' jelly file.
Could you check if that works for you Ioannis Moutsatsos, please? Here's a screen shot (also checked in the disk, and both files were uploaded, but no file name in the latter).