Ajuda com datatable dinâmico

Boa noite pessoal, preciso de uma ajuda, pois estou horas tentando achar algo que funcione e não vai…

Tenho um datatable dentro de um dialog e preciso que pegar os valores de componentes SelectOneMenu, só que eu tenho uma associação de conteudos e cada linha deve ir uma grupo de alunos para serem avaliados, montei de uma forma mas ao preencher o último elemento o primeiro é atualizado e todos na coluna ficam com o mesmo valor, sei que o problema está na forma que estou usando o p:columns. Mas não sei como fazer diferente…

Segue o meu datatable e o bean, que puder dar uma ajuda ficarei muito grato.

Datatable

<p:dataTable id=“conteudos” var=“row” value="#{MBFormulario.conteudoAlunos}" widgetVar=“formTable” editable=“true” editMode=“cell”>

	        <p:column headerText="Conteúdos">
	        	<h:outputText value="#{row.conteudo}" />
	        </p:column>
	                      
	        <p:columns value="#{MBFormulario.alunos}" var="aluno" columnIndexVar="colIndex">
	            <f:facet name="header">
	                #{aluno.numero}
	            </f:facet>
	            
	            
	             
	                   <h:selectOneMenu value="#{row.alunos[colIndex].avaliacao}" style="width:100%">
	                   		<f:selectItem itemValue="" itemLabel="Selecione um valor" />
	                       <f:selectItems value="#{MBFormulario.valores}" var="man" itemLabel="#{man}" itemValue="#{man}" />
	                   </h:selectOneMenu>
	             
	            
	        </p:columns>
	    </p:dataTable>
Bean

if(formulario != null) {
conteudoAlunos = new ArrayList<FormularioBean.FormRow>();

		FormularioDao formularioDao = new FormularioDao();
		
		//Pegar conteúdos da associação FormularioAluno
		conteudos = formularioDao.getConteudosByFormID(formulario.getId());
		
		//Pegar alunos da associação FormularioAluno
		alunos = formularioDao.getAlunosByFormID(formulario.getId());
		
		//Pegar referencia para dados de alunos no formulario
		List<FormularioAluno> formAlunos = formularioDao.getAlunosFormularioByFormID(formulario.getId());
		
		for(Aluno a:alunos) {
			columns.add(new ColumnModel(a.getNumero().toString(), "avaliacao"));
		}
		
		formularioAlunos = formAlunos;
		
		for(int i = 0, k = 0; i < conteudos.size(); i++) {
			FormRow fr = new FormRow();
			fr.conteudo = conteudos.get(i);
			
			fr.alunos = formAlunos;
			for (int j = 0; j < alunos.size(); j++,k++) {
				FormularioAluno formAluno = formAlunos.get(k);
				formAluno.setAluno(alunos.get(j));
				formAluno.setConteudo(conteudos.get(i));
				formAluno.setFormulario(formulario);
			}
			
			conteudoAlunos.add(fr);
			
		}
	}