Hey Autodidax,
I just cloned your GitHub repository in my local testing environment to check if my assumption about your error is correct ... And is it ?
Your problem is just a simple Server / Client - desync:
Your TileEntitySpinningWheel.update is only running on the Server
-> TileEntitySpinningWheel.SwitchAnimationState gets only called on the Server as well.
The solution would be to send a packet to all clients when ever the state is changed
-> This packet will then change the state on the client as well.
If you need any information about packet handling, take a look at the forge documentation: SimpleImpl
You can also take a look at my testing packet if you want to: PacketSpinningWheelSwitchState
Nice Greetings
TechMage