Yes, those rungs are indirectly addressing one of 50 data-files N200 to N249.
To handle this is Logix5000, I would create a 2-dimensional array to save the data., e.g. StoredProgs[50,100]
The first dimension is the "Program Number", the second the length of each "program".
Conversion to Logix5000 is then straightforward.
Rung 5 retrieves the Logix500 file number from lookup data-file N199. This will no longer be needed, as the "Current Program Number" in N192:4 contains the correct value index into the Logix5000 array. Just change the MOV to MOV N192[4] ProgNum (ProgNum = a new DINT tag).
Rung 7 contains the troublesome indirect COP, which we convert to COP N190[0] StoredProgs[ProgNum,0] 100
Similar for the "Load" function....
Rung 9 change the MOV to MOV N192[3] ProgNum
Rung 10 the COP becomes COP StoredProgs[ProgNum,0] N194[0] 100
It would be worth LIM checking that ProgNum is 0 - 49 infront of each COP that uses it, to prevent the processor from faulting if this value gets changed inadvertantly.
HTH