I don't work for IFM, nor for CODESYS and didn't create the .eds file or developed the CAN protocol. I have no knowledge of the exact contents and SDO's or PDO's which are exchanged. So no, I am not sure. But if the .eds file confirms to the CANopen specifications, why shouldn't it?
Yes, you can use the .eds files also in CODESYS 3. Install them through the menu Tools - Device Repository. Then you can add the CANopen devices to your CANopen manager in your device configuration.
You cannot. The code in the PLC is compiled. You either need the source code, or create a new application.
See: https://forge.codesys.com/forge/talk/Engineering/thread/33ecf1ac41/
For sure you must use LEN(). SIZEOF() means you write a number of bytes based on the size of the variable type. For your STRING this will be 80 characters, but this will write unexpected characters in your file.
Do you use 32bit versions of CODESYS? Why not 64bit? And just use the installer to manage your various versions and add-ons. Optionally use separate repositories to prevent possible library conflicts.
Runtime version SP22 is an LTS version.
Instead of complete VM's, you could also create a sandbox installation using the CODESYS installer.