I have a CheckBox on an ASP.NET Content Form like so:
I had the same problem. I have spent a lot of time on it and finally have solved it.
In my case the Checkbox was disabled by default:
It turns ViewState isn't loaded for disabled or invisible controls.
So remove Enabled="false" or Visible="false" and it will work as expeceted. And of course ViewState shouldn't be disabled.