Hi
I loaded your code to my TWR-K20D72M board (standalone - not in tower) and coudl see that the code is not reaching the USB initialisation (the USB registers are still disabled) and the code looks to be in an exception trap (forever loop).
Therefore I couldn't check any USB operation.
What I have done is built the uTasker oproject for your board with USB-HID mouse operation on the local USB interface. Pressing the two user buttons on the board will move the mouse up and down to allow verifying that it is operating correctly. The system clock is set to 72MHz, bus clock 36MHz and the 48MHz USB clock is derived from the system clock divided by 1.5 using SIM_CLKDIV2 = 5 and SIM_SOPT2 = 0x00051000
If you can verify that this runs correctly on your board you can then use it as reference (compare its register settings to yours).
Regards
Mark