Since Z0 is ussually the top of the stock you'd better have some Z negative values or you won't cut anything! That said, park the Z up high zero it then run a program in single block mode. Watch every line and see what every G and M code does one line at a time. If the tool is supposed to be above the part there should be a Z move that gets it there and you should see it go there and the display value should match. I always start in single block the first time I run a program. I step through watching where the tool goes next and I have feed speed way down. If the tool goes to the right place and next move looks correct then I switch off single block and continue.