MVC3 usando CheckBox com um viewmodel complexo

Rapazes certos. Preciso do seu cérebro, pois não consigo encontrar uma maneira de fazer isso corretament

Tenho um modelo de exibição:

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

O usuário não é importante, pois sei como lidar com iss

ServiceLicenses tem a seguinte implementação:

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

Obter uma lista verificada de usuários é legal. Ele funciona como um encanto

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

O problema que estou enfrentando é recuperar o objeto ServiceLicenses atualizado com novos serviços verificados no HttpPost no meu controlador. Para simplificar, digamos que seja assim:

    [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);
        }
    }

Sei que estou usando o CheckBox da maneira errada. O que preciso alterar para que o serviceLicenses seja atualizado com as caixas marcadas no formulário?