In Xilinx Vivado, simulation mismatch between behavioral and post-synthesis implementations
You can't set the same reg from multiple always blocks. You will need to rewrite the module so that regs are only set from within one always block. The simplest way to do this is to use one always block to implement all of the logic.