Thanks Roxy, like always I really appreciate your help! The new marlin_main compiled fine against my existing firmware. Manually running G28 like before homes the x and y and then repositions at the middle of the bed to home the z. Subsequent G28's do the same. G29 then probes from the beginning of the bed and then returns the probe once done.

I was a bit excited, and loaded up a test cube and sliced it and clicked print after that G29. low and behold it crashed the y axis, which after crashing proceeded to extrude at the same offset distance. I chalked it up to me being a dummy and not putting the g28 and G29 code into my start gcode.

My existing start code looks like so:

G21 ; set units to millimeters
M107
M190 S55 ; wait for bed temperature to be reached
M104 S190 ; set temperature
G28 ; home all axes
G1 Z5 F5000 ; lift nozzle
M109 S190 ; wait for temperature to be reached
G90 ; use absolute coordinates
G92 E0
M82 ; use absolute distances for extrusion
G1 F600.000 E-1.00000
G92 E0
And I'm believing then that my new code should look like this?

G21 ; set units to millimeters
M107
M190 S55 ; wait for bed temperature to be reached
M104 S190 ; set temperature
G28 ; home all axes
G29; auto level
M109 S190 ; wait for temperature to be reached
G1 F600.000 E-1.00000
G92 E0
I've removed the G1 Z5, G90, G92, M82 and added in the G29 after the G28.

Would I also have to then adjust anything else in slic3r or otherwise then? I was a bit worried with effectively having the print head starting from the middle of the bed, which caused the Y crash, but it could be just cause I never had g28 and g29 in my start code...

I just wanted to say thank you again too, especially for some of my dumb questions. I've admittedly been rushed with so many projects on the go, that I've probably over looked things I shouldn't have!