CellEdit do datatable perde a edição

ola pessoal,

Estou com um problema chato que não consigo resolver. Criei um datatable com cellEditor dentro de uma tab e, dentro dessa tab, eu coloquei um ajax que muda a lista do datatable toda vez que muda para outra tab. O problema é que, quando eu clico em outra tab e carrega o outro datatable eu perco a edição das células e só aparece o output da célula. Gostaria de uma ajuda pra saber o que está acontecendo e como resolver:

xhtml

 <p:tabView value="#{cadastroContasBean.listaTabela}" dynamic="true"
	closeable="true" activeIndex="#{cadastroContasBean.idTabela}"
	var="tabela" style="heigth:100%;width:100%" id="tabView">
	<p:tab title="tab" closable="true" id="tab">
		<div>
			<p:dataTable binding="#{cadastroContasBean.dataTable}" var="gasto"
				value="#{cadastroContasBean.listaGasto}" scrollable="true"
				scrollHeight="150" editable="true" editMode="cell" id="Tabela"
				widgetVar="wTabela">
				<p:column headerText="Nome">
					<p:cellEditor>
						<f:facet name="output">
							<p:outputLabel value="#{gasto.nome}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText id="inputTextNome" required="true"
								value="#{cadastroContasBean.nome}" style="width:96%"
								binding="#{cadastroContasBean.inputTextNome}">
								<p:ajax event="change" update="Tabela"
									listener="#{cadastroContasBean.atualizaVT('inputTextNome')}"
									execute="inputTextNome" process="@this">
								</p:ajax>
							</p:inputText>
						</f:facet>
					</p:cellEditor>
				</p:column>
				<p:column headerText="Quantidade">
					<p:cellEditor>
						<f:facet name="output">
							<p:outputLabel value="#{gasto.quantidade}" />
						</f:facet>
						<f:facet name="input">
							<p:inputText id="inputQtd" required="true"
								value="#{cadastroContasBean.qtd}" style="width:96%"
								onkeydown="MascaraNumero()" onkeyup="MascaraNumero()"
								binding="#{cadastroContasBean.inputTextQtd}">
								<p:ajax event="change" update="Tabela"
									listener="#{cadastroContasBean.atualizaVT('inputTextQtd')}"
									execute="inputQtd" process="@this" />
							</p:inputText>
						</f:facet>
					</p:cellEditor>
				</p:column>
				<p:column headerText="Valor">
					<p:cellEditor>
						<f:facet name="output">
							<p:outputLabel value="#{gasto.valor}">
								<f:convertNumber currencySymbol="R$" type="currency" />
							</p:outputLabel>
						</f:facet>
						<f:facet name="input">
							<p:inputText id="inputValor" required="true"
								value="#{cadastroContasBean.valor}" style="width:96%"
								binding="#{cadastroContasBean.inputTextValor}">
								<f:convertNumber pattern="#,##0.00"></f:convertNumber>
								<f:validator validatorId="MoedaValidator" />
								<p:ajax event="change" update="Tabela"
									listener="#{cadastroContasBean.atualizaVT('inputTextValor')}"
									execute="inputValor" process="@this">
								</p:ajax>
							</p:inputText>
						</f:facet>
					</p:cellEditor>
				</p:column>
				<p:column headerText="Valor Total" id="vt">
					<p:outputLabel id="outputVT" value="#{gasto.valorTotal}">
						<f:convertNumber currencySymbol="R$" type="currency" />
					</p:outputLabel>
				</p:column>
			</p:dataTable>
			<div id="addGasto">
				<p:commandButton value="Add gasto" style="width:100%"
					actionListener="#{cadastroContasBean.addGasto}" update="Tabela"></p:commandButton>
			</div>
		</div>
		<div>
			<p:outputLabel value="Comentários: " for="comentario"></p:outputLabel>
			<p:inputTextarea value="#{tabela.comentarios}" id="comentario"
				autoResize="true" style="width: 100%; height: 50%"></p:inputTextarea>
		</div>
	</p:tab>
	<p:ajax event="tabChange" execute="tab"
		listener="#{cadastroContasBean.mudaTab}" process="@this" />
</p:tabView>

MB

public void mudaTab(TabChangeEvent event) {
		tabelaAtual = (Tabela)event.getData();
		idTabela =(tabelaAtual).getId();
		listarGastos();
}
public void listarGastos(){
		listaGasto = tabelaAtual.getListaGastos();
}

Tabela

public class Tabela {

	@Id @GeneratedValue(strategy=GenerationType.IDENTITY)	
	private Integer id;
	private String comentarios;

	@OneToMany (mappedBy="tabela")
	private List<Gastos> listaGastos = new ArrayList<Gastos>();

	@ManyToOne
	private MesAno mesano;

	public List<Gastos> getListaGastos() {
		return listaGastos;
	}
	public void setListaGastos(List<Gastos> listaGastos) {
		this.listaGastos = listaGastos;
	}
	public MesAno getMesano() {
		return mesano;
	}
	public void setMesano(MesAno mesano) {
		this.mesano = mesano;
	}
	public String getComentarios() {
		return comentarios;
	}
	public void setComentarios(String comentarios) {
		this.comentarios = comentarios;
	}
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}	
}