Hi,
while I'm designing with VDHL rather than Verilog I may have overseen coding issues but... I had similar behaviour ("strange" operation of state machine) with VHDL sometimes. I always fixed this with synchronising all "external", i.e. asynchronous signals first prior using these to initiate state machine decisions. I assume signals like "Overcurrent" or "ChopFB" are connected by I/O Pins and may therefore change asynchronous to the SysClock used as state machine clock. That may cause timing issues if the "next state calculation" and the switching SysClock may violate register's setup or hold times...
Perhaps you give it a try and synchronize the external signal to SysClock first using these "internal" signals as input to the state machine...
Just my two cents,
Carlhermann