@eratus
The problem will be how you have your CNC Control setup, you have two Z Zero coordinates, one is the "Home" position of the machine and the second one is the "Part Zero", a common position for "Part Zero" is to set it to the Lower Left corner of the Stock on the X and Y axis and the Z to the top of the stock. That would also be set in the Setup for your programs in Fusion, set the WCS in Fusion to the same as your "Touch Off" position that you are going to use at the machine, really easy if you keep stuff the same at each location 
Also be aware that the Tool lengths that you use in Fusion are NOT transferred over to your CNC Control, those you need to set at the Control. These are usually "Called up" by a G43 Z** H** line of code so it is for example for tool #1 would look like G43 Z28.7 H1, this is the control moving the Z axis to Z28.7 and taking into account the length of the tool that you have set in the control, so for example if you have a tool length set to say 60mm the the CNC Control will stop the Z axis movement at 88.7mm above the stock.
Hope you can understand all that, not trying to insult anyone but there is no way to know anyones level of expertise 
What control and Post Processor are you using and is there not a switch at the highest point of travel actually on the machine ??
If there is only a single switch at the lower end of your Z axis travel then that is simply a "Limit" switch and should be set so that the spindle with a tool in it can not hit the table, often that switch is on a slide so that it is adjustable.
If you have no switch at the top of your Z axis travel then you need to setup and use "Soft Limits" for Homing your machine, the X/Y axis can be anywhere you like (Usually somewhere you can easily access it for tool changes if you have no ATC) but the Z axis must be set at a safe height so that either a G28 G91 Z0 or G53 Z0 command will send your Z axis up to the safe height you want it to go to for tool changes and X/Y safe lateral movement, so if you have your machine control setup correctly the first thing the machine should do is go to the Z axis "Home" position, this is no different for either a "Hobbyist" or a "Professional", this is the basics of setting up and running any CNC Machine be it Mill/Lathe/Router etc, etc.
Lets look at your code :-
Here's the start of the gcode with g28:
N25 G28 G91 Z0 This is the correct line of code that will lift the Z axis to the safe/Home position, this is good and safe (This could also be a G53 Z0 command)
N30 G90
(2D Pocket1)
N35 T1
N40 S12000 M3
N45 G0 X715.071 Y304.798 Now the X/Y linear moves can be done safely
N50 Z28.7 Now the Z axis should move DOWN to the Z28.7 Clearance height, this is correct and safe
And here's the start with Clearance Height:
(2D Pocket1)
N25 T1
N30 S12000 M3
N35 G0 X715.071 Y304.798 Here you have the X/Y linear move being done with nothing before it for a Z height so where is the spindle at this point, if it is left at the height of the Z Stock top then the tool will just drag across the Stock before it goes to the Z28.7 position
N40 Z28.7 Now it goes to the Z28.7 height but is it going UP or DOWN to go there?
What CNC Control are you using ?? The above will apply to most Hobby CNC Controls such as Mach3/Mach4/UCCNC/CSMIO etc, etc,.
Get your CNC Machine setup correctly and you will get to enjoy it much more
