Erro durante a edição utilizando componentes SelectManyCheckBox + f:selectItems

Olá galera,

Estou com o seguinte problema tenho um componente SelectManyCheckBox que é preenchido com uma lista através do f:selectItems. Sendo que tenho uma tela para cadastro que utiliza estes componentes e o mesmo funciona corretamente, porém quando vou realizar a edição nesta mesma tela os dados dos checks não são retornados . Estou utilizando os seguintes artefatos:

tipoCredencial.xhtml

[code] …
<f:metadata>
<f:viewParam name=“id” value="#{tipoCredencialCadastroMB.tipoCredencial.codigo}" />
<f:event type=“preRenderView” listener="#{tipoCredencialCadastroMB.render}"/>
</f:metadata>
<h:panelGrid columns=“3”>

<h:column>
<h:selectManyCheckbox value="#{tipoCredencialCadastroMB.selectedFormaAcesso}" converter=“formaAcessoConverter” >
<f:selectItems value="#{tipoCredencialCadastroMB.listaFormaAcesso}" var=“lista” itemLabel="#{lista.nome}" itemValue="#{lista}"/>

</h:selectManyCheckbox>

</h:column>
</h:panelGrid>

[/code]
Meu Bean

@ManagedBean
@ViewScoped
public class TipoCredencialCadastroMB extends MIFacesMB {
	
	@EJB
	TipoCredencialV2Bean tipoCredencialBean;
	
	@EJB
	FormaAcessoV2Bean formaAcessoBean;
private TipoCredencial tipoCredencial;
	
	private List<FormaAcesso> listaFormaAcesso;
	private List<FormaAcesso> selectedFormaAcesso;
	

@PostConstruct
	public void init(){
		this.tipoCredencial = new TipoCredencial();
selectedFormaAcesso= new ArrayList<FormaAcesso>();
		initList();
		
	
	}
	@PostConstruct
	public void render() throws MIAmbienteException {

		if (tipoCredencial.getCodigo() != null) {
			if (!FacesContext.getCurrentInstance().isPostback()) {	
				
				tipoCredencial = tipoCredencialBean.obter(this.tipoCredencial.getCodigo());
				tipoCredencial.setListFormaAcesso(tipoCredencialBean.carregarFormaAcesso(this.tipoCredencial.getCodigo()).getListFormaAcesso());
				
			    this.selectedFormaAcesso = tipoCredencial.getListFormaAcesso();
			   
				
			}
		}

	}
public void initList(){
		this.listaFormaAcesso = this.formaAcessoBean.pesquisar("nome");
		
	
	}


public TipoCredencialV2Bean getTipoCredencialBean() {
		return tipoCredencialBean;
	}
	public void setTipoCredencialBean(TipoCredencialV2Bean tipoCredencialBean) {
		this.tipoCredencialBean = tipoCredencialBean;
	}
	public TipoCredencial getTipoCredencial() {
		return tipoCredencial;
	}
	public void setTipoCredencial(TipoCredencial tipoCredencial) {
		this.tipoCredencial = tipoCredencial;
	}
	

	public FormaAcessoV2Bean getFormaAcessoBean() {
		return formaAcessoBean;
	}

	public void setFormaAcessoBean(FormaAcessoV2Bean formaAcessoBean) {
		this.formaAcessoBean = formaAcessoBean;
	}

	public List<FormaAcesso> getListaFormaAcesso() {
		return listaFormaAcesso;
	}

	public void setListaFormaAcesso(List<FormaAcesso> listaFormaAcesso) {
		this.listaFormaAcesso = listaFormaAcesso;
	}
public List<FormaAcesso> getSelectedFormaAcesso() {
		return selectedFormaAcesso;
	}

	public void setSelectedFormaAcesso(
			List<FormaAcesso> selectedFormaAcesso) {
		this.selectedFormaAcesso = selectedFormaAcesso;
	}

	

 

Entity

@Entity
@Table(name="sis_tipo_credencial", schema = "dbo")
public class TipoCredencial implements Serializable , BaseDomain<Integer> {

	private static final long serialVersionUID = 1L;
	
	private Integer codigo;
	private String nome;
	private String descricao;
	private Integer toleranciaMinimaEpi;
	private String motivoAlteracao;
	private String motivoExclusao;
	private Boolean excluido;

	private List<FormaAcesso> listFormaAcesso;
	private List<Epi> listEpi;
	

	public String toString() {
		return this.nome;
	}

	@Id
	@SequenceGenerator(name="SIS_TIPO_CREDENCIAL_TCRCODIGO_GENERATOR", sequenceName="dbo.SEQ_SIS_TIPO_CREDENCIAL", allocationSize=1)
	@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SIS_TIPO_CREDENCIAL_TCRCODIGO_GENERATOR")
	@Column(name="tcr_codigo")
	public Integer getCodigo() {
		return codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}
	@Column(name="tcr_tolerancia_minima_epi")
	public Integer getToleranciaMinimaEpi() {
		return toleranciaMinimaEpi;
	}
	
	public void setToleranciaMinimaEpi(Integer toleranciaMinimaEpi) {
		this.toleranciaMinimaEpi = toleranciaMinimaEpi;
	}
	@Column(name="tcr_titulo")
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	
	@Column(name="tcr_descricao")
	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	
	
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name="sis_forma_acesso_tipo_credencial",schema="dbo",joinColumns={@JoinColumn(name="tcr_codigo")},inverseJoinColumns={@JoinColumn(name="foa_Codigo")})
	public List<FormaAcesso> getListFormaAcesso(){
		return listFormaAcesso;
	}

	public void setListFormaAcesso(List<FormaAcesso> listFormaAcesso) {
		this.listFormaAcesso = listFormaAcesso;
	}
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name="sis_epi_tipo_credencial",schema="dbo",joinColumns={@JoinColumn(name="tcr_codigo")},inverseJoinColumns={@JoinColumn(name="epi_Codigo")})
	public List<Epi> getListEpi() {
		return listEpi;
	}

	public void setListEpi(List<Epi> listEpi) {
		this.listEpi = listEpi;
	}
	
	@Transient
	public String getEscala(){
		String retorno = "Não";
		
		if(!this.listFormaAcesso.isEmpty()){
			
			for(FormaAcesso tipo : listFormaAcesso) {
				if(tipo.getCodigo().equals(1)) {
					retorno = "Sim";
					break;
				}
				
			}
		}
		
		
		return retorno;
	}

	
	
	@Transient
	public String getLivreAcesso(){
		String retorno = "Não";
		
		if(!this.listFormaAcesso.isEmpty()){
			for(FormaAcesso tipo : listFormaAcesso) {
				if(tipo.getCodigo().equals(2)) {
					retorno = "Sim";
					break;
				}
				
			}
		}
		
		
		return retorno;
	}
	
	
	
	@Transient
	public String getViagem(){
		String retorno = "Não";
		
		if(!this.listFormaAcesso.isEmpty()){
			for(FormaAcesso tipo : listFormaAcesso) {
				if(tipo.getCodigo().equals(3)) {
					retorno = "Sim";
					break;
				}
				
			}
		}
		
		
		return retorno;
	}

	
	
	@Column(name="tcr_motivo")
	public String getMotivoAlteracao() {
		return motivoAlteracao;
	}

	public void setMotivoAlteracao(String motivoAlteracao) {
		this.motivoAlteracao = motivoAlteracao;
	}
	
	@Column(name="tcr_motivo_exclusao")
	public String getMotivoExclusao() {
		return motivoExclusao;
	}

	public void setMotivoExclusao(String motivoExclusao) {
		this.motivoExclusao = motivoExclusao;
	}
	@Column(name="tcr_excluido")
	public Boolean getExcluido() {
		return excluido;
	}

	public void setExcluido(Boolean excluido) {
		this.excluido = excluido;
	}

	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		TipoCredencial other = (TipoCredencial) obj;
		if (codigo == null) {
			if (other.codigo != null)
				return false;
		} else if (!codigo.equals(other.codigo))
			return false;
		return true;
	}
	
}

Converter

@FacesConverter(value="formaAcessoConverter")
public class FormaAcessoConverter implements Converter {

	int counter;
	@Override
	public Object getAsObject(FacesContext context, UIComponent component,String value) {
		
		for (UIComponent child : component.getChildren()) {  
            if (child instanceof UISelectItems) {  
                @SuppressWarnings("unchecked")
				List<FormaAcesso> items = (List<FormaAcesso>) ((UISelectItems) child).getValue();  
                return items.get(Integer.parseInt(value)-1); 
                
            }  
        }  
        return null;  
	}

	@Override
	public String getAsString(FacesContext context, UIComponent component,Object value) {
	
		
		return Integer.toString(++counter); 
	}

}

Busquei alguns exemplos aqui no fórum e no google porém sem sucesso. Desde já agradeço a colaboração de todos e caso possam me indicar um material ou um exemplo de utilização destes componentes nesta situação, será de grande ajuda

Abraços