Rendered não exibe os componentes JSF + PrimeFaces

Senhores, preciso de uma ajuda…
Estou fazendo uma tela que contém a seguinte regra: Após o preenchimento do documento, se o mesmo for CPF, os campos “sexo” e “nascimento” devem ser exibidos. Se o documento for CNPJ, os campos “sexo” e “nascimento” devem sumir. O que acontece é que após o preenchimento do documento é executado uma chamada ajax para buscar os dados e preencher os campos da tela…mas os campos que estao invisíveis não são exibidos.

Segue meu código:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui"
	xmlns:cc="http://java.sun.com/jsf/composite">
<cc:interface>
	<cc:attribute name="pessoaBean" required="true" />
</cc:interface>
<cc:implementation>

	<h:outputScript library="sistemasaas_scripts" name="somentenumeros.js" />
	<h:outputScript library="sistemasaas_scripts" name="datalocale.js" />

	<h:inputHidden id="pessoaid" value="#{cc.attrs.pessoaBean.pessoa.id}" />

	<p:fieldset legend="Identificação">

		<h:panelGrid columns="4">

			<h:outputLabel value="Documento *" for="documento" />
			<p:inputText id="documento"
				value="#{cc.attrs.pessoaBean.pessoa.documento}"
				converter="documentoConverter" size="14" maxlength="14"
				required="true" requiredMessage="Informe o número do documento"
				onkeypress="return somenteNumero(event);">
				<f:validator validatorId="documentoValidator" />
				<p:ajax event="change" process="@this"
					update="pessoaid, documento, nome, sexo, datadenascimento, logradouro, numero, 
							complemento, bairro, pngestado, pngcidade, cep, telefone1, telefone2, email, senha"
					listener="#{cc.attrs.pessoaBean.carregarDadosPessoa}" />
			</p:inputText>

			<h:outputLabel value="Nome *" for="nome"/>
			<p:inputText id="nome" value="#{cc.attrs.pessoaBean.pessoa.nome}"
				size="100" maxlength="100" required="true"
				requiredMessage="Informe o nome">
			</p:inputText>

			<h:outputLabel value="Sexo *" for="sexo"
				rendered="#{cc.attrs.pessoaBean.exibeControlesDePessoaFisica}"/>
			<p:selectOneMenu id="sexo" immediate="true"
				rendered="#{cc.attrs.pessoaBean.exibeControlesDePessoaFisica}"
				value="#{cc.attrs.pessoaBean.pessoa.sexo}" effect="fade"
				style="width:100px">
				<f:selectItem itemLabel="" itemValue="" />
				<f:selectItem itemLabel="Feminino" itemValue="F" />
				<f:selectItem itemLabel="Masculino" itemValue="M" />
			</p:selectOneMenu>

			<h:outputLabel value="Nascimento *" for="datadenascimento"
				rendered="#{cc.attrs.pessoaBean.exibeControlesDePessoaFisica}"/>
			<p:calendar id="datadenascimento"
				rendered="#{cc.attrs.pessoaBean.exibeControlesDePessoaFisica}"
				value="#{cc.attrs.pessoaBean.pessoa.dataDeNascimento}"
				pattern="dd/MM/yyyy" size="12" locale="pt_BR">
			</p:calendar>


		</h:panelGrid>

	</p:fieldset>

	<br />

	<p:fieldset legend="Endereço">
		<h:panelGrid columns="2">
			<h:outputLabel value="Logradouro *" for="logradouro" />
			<p:inputText id="logradouro"
				value="#{cc.attrs.pessoaBean.pessoa.logradouro}" size="100"
				maxlength="100" required="true"
				requiredMessage="Informe o logradouro">
			</p:inputText>

			<h:outputLabel value="Número" for="numero" />
			<p:inputText id="numero" value="#{cc.attrs.pessoaBean.pessoa.numero}"
				size="20" maxlength="20" required="false">
			</p:inputText>

			<h:outputLabel value="Complemento" for="complemento" />
			<p:inputText id="complemento"
				value="#{cc.attrs.pessoaBean.pessoa.complemento}" size="20"
				maxlength="20" required="false">
			</p:inputText>

			<h:outputLabel value="Estado *" for="estado" />
			<h:panelGroup id="pngestado">
				<p:selectOneMenu id="estado" immediate="true"
					value="#{cc.attrs.pessoaBean.estadoSelecionado}"
					converter="estadoConverter" effect="fade" style="width:275px"
					required="true" requiredMessage="Selecione um estado">
					<f:selectItem itemLabel="Selecione um estado" itemValue="" />
					<f:selectItems value="#{cc.attrs.pessoaBean.estadosCadastrados}"
						var="estado" itemLabel="#{estado.nome}" itemValue="#{estado}" />

					<p:ajax event="change" process="@this" update="pngcidade" />
				</p:selectOneMenu>
			</h:panelGroup>

			<h:outputLabel value="Cidade *" for="cidade" />
			<h:panelGroup id="pngcidade">
				<p:selectOneMenu id="cidade"
					value="#{cc.attrs.pessoaBean.cidadeSelecionada}"
					converter="cidadeConverter" effect="fade" style="width:275px"
					required="true" requiredMessage="Selecione uma cidade">
					<f:selectItem itemLabel="Selecione uma cidade" itemValue="" />
					<f:selectItems value="#{cc.attrs.pessoaBean.cidades}" var="cidade"
						itemLabel="#{cidade.nome}" itemValue="#{cidade}" />
				</p:selectOneMenu>
			</h:panelGroup>

			<h:outputLabel value="Bairro *" for="bairro" />
			<p:inputText id="bairro" value="#{cc.attrs.pessoaBean.pessoa.bairro}"
				size="50" maxlength="50" required="true"
				requiredMessage="Informe o bairro">
			</p:inputText>

			<h:outputLabel value="CEP" for="cep" />
			<p:inputMask id="cep" value="#{cc.attrs.pessoaBean.pessoa.cep}"
				mask="99999-999" converter="cepConverter"
				validatorMessage="Informe um CEP válido">
			</p:inputMask>
		</h:panelGrid>
	</p:fieldset>

	<br />

	<p:fieldset legend="Contatos">
		<h:panelGrid columns="2">
			<h:outputLabel value="Telefone 1" for="telefone1" />
			<p:inputMask id="telefone1"
				value="#{cc.attrs.pessoaBean.pessoa.telefone1}" mask="(99)9999-9999"
				converter="telefoneConverter" validatorMessage="Telefone 1 inválido">
			</p:inputMask>

			<h:outputLabel value="Telefone 2" for="telefone2" />
			<p:inputMask id="telefone2"
				value="#{cc.attrs.pessoaBean.pessoa.telefone2}" mask="(99)9999-9999"
				converter="telefoneConverter" validatorMessage="Telefone 2 inválido">
			</p:inputMask>

			<h:outputLabel value="Email *" for="email" />
			<p:inputText id="email" value="#{cc.attrs.pessoaBean.pessoa.email}"
				maxlength="100" size="100" required="true"
				requiredMessage="Informe o email"
				validatorMessage="Informe um email válido">
			</p:inputText>
		</h:panelGrid>
	</p:fieldset>

	<br />

	<p:fieldset legend="Acesso">
		<h:panelGrid columns="2">
			<h:outputLabel value="Senha *" for="senha" />
			<p:password id="senha" value="#{cc.attrs.pessoaBean.pessoa.senha}"
				maxlength="20" size="20" required="true"
				requiredMessage="Informe a senha para acesso ao sistema"
				redisplay="true">
			</p:password>
		</h:panelGrid>
	</p:fieldset>
</cc:implementation>

</html>

Meu Bean


package sistemasaas.pessoa;

import java.util.ArrayList;
import java.util.List;

import apisaas.endereco.controller.EnderecoFactory;
import apisaas.endereco.dao.IEnderecoDAO;
import apisaas.endereco.model.Cidade;
import apisaas.endereco.model.Estado;
import apisaas.pessoa.controller.PessoaFactory;
import apisaas.pessoa.dao.IPessoaDAO;
import apisaas.pessoa.model.Pessoa;
import apisaas.utilitarios.ApiSaaSUtilitario;
import apisaas.utilitarios.DocumentoUtilitario;

public class PessoaBean { 

	protected Pessoa pessoa;

	protected List<Estado> estadosCadastrados;
	protected Estado estadoSelecionado;

	protected List<Cidade> cidadesDoEstado;    
	protected Cidade cidadeSelecionada;

	protected void iniciarPessoaBean() {

		this.pessoa = PessoaFactory.criarPessoa();
		
		this.estadosCadastrados = null;

		this.estadoSelecionado = null;

		this.cidadesDoEstado = null;

		this.cidadeSelecionada = null;	

	}

	public Pessoa getPessoa() {

		return this.pessoa;

	}    

	public void setPessoa(Pessoa pessoa) {

		this.pessoa = pessoa;

		configurarEstadoECidadeSelecionado();

	}

	private void configurarEstadoECidadeSelecionado() {	

		if (possuiEstado()) {

			this.estadoSelecionado = this.pessoa.getEstado();

			carregarCidades();

			if (possuiCidade()) {

				this.cidadeSelecionada = this.pessoa.getCidade();

			}	    

		}	

	}          
	
	private boolean possuiEstado() {

		return this.pessoa.getEstado() != null;

	}
	
	public void carregarCidades() {			

		this.cidadesDoEstado = null;

		if (this.estadoSelecionado != null) {	    

			IEnderecoDAO enderecoDAO = EnderecoFactory.criarEnderecoDAO();
			this.cidadesDoEstado = enderecoDAO.listarCidadesDoEstado(this.estadoSelecionado);

		} else {

			this.cidadesDoEstado = new ArrayList<Cidade>();

		}

	}
	
	private boolean possuiCidade() {

		return this.pessoa.getCidade() != null;

	}    
	
	public void setEstadoSelecionado(Estado estadoSelecionado) {

		this.estadoSelecionado = estadoSelecionado;
		carregarCidades();
		
	}    

	public Estado getEstadoSelecionado() {

		if (possuiEstado()) {

			this.estadoSelecionado = this.pessoa.getEstado();

		}

		return estadoSelecionado;

	}                      

	public void setCidadeSelecionada(Cidade cidadeSelecionada) {

		this.cidadeSelecionada = cidadeSelecionada;

	}    

	public Cidade getCidadeSelecionada() {		

		if (possuiCidade()) {

			this.cidadeSelecionada = this.pessoa.getCidade();

		}

		return cidadeSelecionada;

	}    

	public List<Estado> getEstadosCadastrados() {

		if (! ApiSaaSUtilitario.isListaValida(this.estadosCadastrados)) {

			IEnderecoDAO enderecoDAO = EnderecoFactory.criarEnderecoDAO();
			this.estadosCadastrados = enderecoDAO.listarEstados();

		}

		return estadosCadastrados;

	}    

	public List<Cidade> getCidades() {	

		if (! ApiSaaSUtilitario.isListaValida(this.cidadesDoEstado)) {

			carregarCidades();

		}

		return this.cidadesDoEstado;

	}

	public void carregarDadosPessoa() {		

		String documento = this.pessoa.getDocumento();

		Pessoa pessoa = retornarPessoa(documento);

		if (pessoa != null) {

			this.pessoa = pessoa;
			this.estadoSelecionado = pessoa.getEstado();	    	
			this.cidadeSelecionada = pessoa.getCidade();

			carregarCidades();
			
		}		

	}   


	private Pessoa retornarPessoa(String documento) {

		if (ApiSaaSUtilitario.isStringValida(documento)) {

			IPessoaDAO pessoaDAO = PessoaFactory.criarPessoaDAO();

			return pessoaDAO.buscarPeloDocumento(documento);

		}

		return null;

	}
	
	protected void atribuirEstadoECidade() {
		
		this.pessoa.setCidade(this.cidadeSelecionada);
		this.pessoa.setEstado(this.estadoSelecionado);
		
	}
	
	public boolean isExibeControlesDePessoaFisica() {
	
		boolean ehPessoaFisica = DocumentoUtilitario.isCPFValido(this.pessoa.getDocumento()); 
		
		return ehPessoaFisica;
		
	}

}

Se eu fizer com o atributo disabled funciona blz…os controles são habilitados e desabilitados dinamicamente, mas com rendered não funciona.