That looks wrong to me somehow. In Estlcam a negative Z would be a 3mm deep cut, and 3mm would be 3mm above the workpiece. I don’t know if those settings do anything, but that looks weird. I think I would try switching those.
In your code Z goes always back to -2.5 as the basis somehow, I think it should be 2.5 and might be connected to the quoted settings above. It could also be that you set the starting depth to -2.5mm for that part.
I do not now exactly how the gcode works, I am just making an educated-ish guess.