Hola, el problema no creo que sea con los CheckBox sino con el campo codperfil que seguramente será numérico y le tienes que quitar las comillas:
cn.Execute "UPDATE perfiles SET codperfil= '" & TxtCodigo.Text & "',nombre= '" & TxtNombre.Text & "',tipocomprobante= " & ChkTC.Value & ",comprobante= " & ChkC.Value & " ,sucursal= " & ChkS.Value & " ,perfil=" & ChkP.Value & " ,usuario=" & ChkU.Value & " ,listado= " & ChKl.Value & " ,auditoria=" & chkA.Value & " WHERE codperfil= " & TxtCodigo.Text
Nota: Te aconsejo que para concatenar valores utilices el signo de ampersand (&) en vez del signo más (+), evitarás problemas.