MVC3 usando CheckBox con un modelo de vista complejo

Correctos chicos. Necesito tu cerebro ya que no puedo encontrar la manera de hacerlo correctamente.

Tengo un modelo de vista:

public class EditUserViewModel
{
    public User User;
    public IQueryable<ServiceLicense> ServiceLicenses;
}

El usuario no es importante ya que sé cómo tratarlo.

ServiceLicenses tiene la siguiente implementación:

public class ServiceLicense
{
    public Guid ServiceId { get; set; }
    public string ServiceName { get; set; }
    public bool GotLic { get; set; }
}

Obtener una lista comprobada de usuarios es genial. Funciona a las mil maravillas

<fieldset>
    <legend>Licenses</legend>
    @foreach (var service in Model.ServiceLicenses)
    {     
    <p>
        @Html.CheckBoxFor(x => service.GotLic)
        @service.ServiceName
    </p>
    } 
</fieldset>

El problema que tengo es obtener el objeto ServiceLicenses actualizado con nuevos servicios controlados de vuelta al HttpPost en mi controlador. Por simplicidad, digamos que se ve así:

    [HttpPost]
    public ActionResult EditUser(Guid id, FormCollection collection)
    {

        var userModel = new EditUserViewModel(id);
        if (TryUpdateModel(userModel))
        {
            //This is fine and I know what to do with this
            var editUser = userModel.User;

            //This does not update
            var serviceLicenses = userModel.ServiceLicenses;

            return RedirectToAction("Details", new { id = editUser.ClientId });
        }
        else
        {
            return View(userModel);
        }
    }

Sé que estoy usando CheckBox de manera incorrecta. ¿Qué necesito cambiar para que ServiceLicenses se actualice con las casillas marcadas en el formulario?

Respuestas a la pregunta(1)

Su respuesta a la pregunta