Based on error messages you are getting it narrows down to perl issue and invalid character present in perl script.
Have you or someone modified the perl script? Usually it is required to modify the scripts to point toproper perl location. Sometimes when you modify the script, the text editors could insert some characters in wrong encoding, etc. So I suggest to do comparison to perl scripts from the nodes with the same psu levels where installation was sucessfull., just compare filesize and if its different, then you could possible copy right scripts over current ones.
The GI installations are very hard to investigate remotely, there could be too many things that can be wrong, so oracle support is your friend.
As general thing I always recommend to install latest PSU before root.sh script execution.