Could the issue be with defining the z-axis home position?
Moving the z-axis manually will always work because it commands the z-axis to move up or down from wherever it is.
The gcode file will command the z-axis to move to a particular height so it is important where zero is defined.
Does the zaxis read a height of 0.0 when the bit is just about to touch the wood?