Isto é uma limitação do C#/BEF.
Como o tipo de retorno dos métodos GetMany e Get é definido na classe núcleo (Pessoa : BusinessEntity<Pessoa>), esses métodos vão retornar sempre o tipo do núcleo.
Mas é só a assinatura, as instâncias serão do tipo específico, no caso PessoaXPTO.
A solução correta é utilizar o operador as:
PessoaXPTO pessoaEspecifica = PessoaXPTO.Get(1) as PessoaXPTO;