This will typically happen if you are not binding your GridView within Not Ispostack block. If you are binding your Grid on page load then make sure to wrap it within Not Ispostback. For example:
protected void Page_Load(object sender, EventArgs e){
if (!IsPostBack)
{
}
}
This will ensure that the state of your CheckBox will not reset on postbacks.