Ok got the better of it I think, did as above but added G92Z0 after the G31 line in the G Code and it seemed to work.
So next I went back to the original G code with m124 only in it and went back to my original macro but I added
Code"92z0" after the G31 move in the code. It worked but went way too high on the Z for some reason.
So next I replaced the
Code"G92Z0" line with
SetOemDRO(802,0)
And it worked perfectly.
Cut two flanges out as a test, each flange had 6 x G31 moves in it and worked flawlessly. Why the G92 worked in code but not macro I have no idea but it is working so I am happy as that seems to be it more or less working as intended now.