GXIEC is dead in the water, this was superseded by GXWorks so not worth bothering with, conversion from GXIEC to GXWorks can be a little problematic.
I have little experience with Codesys & if it's IEC compliant there will be many similarities however, I think it's coding line by line unless it's ST.
Just a couple of other pointers:
Mitsubishi although you can use tag based variables, these are allocated at compile time into ranges of actual addresses.
for example: you create a float tag called My_Float, and do not give it an actual address then when it is compiled it gives it an actual address for example D900 (with it being a float it actually takes up two words so D900 & D901). the problem is as the actual address is determined at compile time you cannot access it from an HMI.
So for local or global variables that you do not need to access then there is no need to give it an actual physical address, however, any that an HMI needs to read/write do need to have actual addresses, Mitsubishi currently does not communicate using tags only actual addresses.
So for example (depending on PLC).
Internal memory bits are "M", M0 to Mxxxx (note the GXWorks IDE allocates say M900 to Mxxxx for temps or compile time allocation) so if giving actual addresses then use the range below say 8000 (The range for the compile time is configurable in the IDE settings).
The same goes for the "D" memories, these go from D0 to DXXX, however, again the upper i.e. D900 are allocated for compile time., also the "D" words can be set to retentive by configuration as standard it is like D512 to Dxxx. again set in the PLC parameters. There are a host of other variables like "L", "R" "B" etc.
Note that word type memories are 16 bit so using doubles (long int), floats (reals) take up more than one register so for example there are 32 & 64 bit type floats these take up two or four words respectively so if coding and allocating actual addresses then bear this in mind if D24 is a single precision float then it uses D24 & D25 if double precision then it uses D24,D25,D26,D27.
The reason for this is backward compatibility with GXDeveloper. I have no doubt that future platforms will use symbol based tags (variables).
One other thing to be aware of, uploading from PLC to disk will not re-construct the symbolic code i.e. graphical representation unless this has been downloaded as part of the project, so loosing your source code means it will come back as ladder in the old format. downloading the symbolic file takes time so what I do is either not bother or only do this after finished for the day & there is plenty of memory to store it. On-line edits can only be 500 or so bytes of changes, normally not a problem but if you create a large function block you will have to put the PLC to stop to download it.