The parameter for your teach function seems ok but it sounds like your work offset isn't set or the Z workoffset value is not correct. You should have a Z minus number in your work offset. For positive tool offsetting, this Z value is sum of the tool length plus Z motion. The teach function should do the math. However, your tool offset may not be correct either. It may have calculated the tool length from you default offset (which is usually G54 at reset).
The tool length offset should be the distance from the tool tip to the gage line of the spindle (although many people will simply use the spindle taper face as the gage reference).
If you want to use negative tool offsetting, then re-zero the tool length and touch off the tool again. This time, don't use the TEACH button and note the machine Z position instead. Use that as your tool length. With your work offset Z set to 0, it should move properly now.