Fixed FPGA pulse type error - still counting in 20ns ticks though.
Fixed FPGA timing issue - problem was that the number of ticks was being written to 24 bit array (msb 3 bytes of Data[]) and then the 5LSB were being overwritten, so essentially dividing by 32 - back to 20ns ticks again. Fixed by multiplying State.Ticks * 32 before writing to hex file.