Hola Dtrujo.
Yo recorro los checks que tengo en un gridview de la siguiente manera, tal vez te sirva el ejemplo.
string sCalve=string.Empty;
int iCont, iRenglon;
for (iCont = 0; iCont < gvMi_grid.Rows.Count; iCont++)//Recorro el Grid
{
iRenglon = iCont;
GridViewRow row = gvMi_grid.Rows[iCont];
sClave = gvMi_grid.DataKeys[iRenglon].Values[0].ToString().Trim();//guardo en la variable la clave del renglón donde el check esté seleccionado
if (((CheckBox)row.FindControl("chkSeleccion")).Check ed == true)
{
// Si el check está seleccionado que haga algo
}
}
Saludos.