Defina a grelha do forno na posição mais baixa e pré-aqueça o forno a 450 graus Fahrenheit.
Espalhe as cebolas e os tomates em uma assadeira grande. Coloque o peru em cima dos legumes, com o peito para cima. Recheie a cavidade principal com o máximo de recheio possível e coloque o restante em uma assadeira com manteiga. Feche a cavidade cruzando e amarrando as pernas com barbante de açougueiro e dobre as pontas das asas sob o peru. Despeje o máximo da marinada restante sobre o peru que couber na metade da panela.
Cubra o peru com camadas de folhas de bananeira, se for usá-las. Em seguida, cubra toda a panela com papel alumínio, fechando da melhor maneira possível, quanto menos vapor escapar, melhor. Asse o peru por 30 minutos.
Reduza o forno para 350 graus Fahrenheit. Coloque o peru de volta no forno e asse por 3 horas e meia, ou pelo menos 1 minutos por libra. Retire do forno e retire com cuidado as folhas e/ou o papel alumínio, tomando cuidado pois o vapor está quente. Volte ao forno e asse por mais 2 minutos. O peru deve estar completamente cozido e quase caindo do osso.
Retire o peru do forno, frouxamente coberto com papel alumínio, e deixe descansar por pelo menos 15 a 20 minutos.
Coe todos os vegetais cozidos e o suco em uma panela média de 3 litros, pressionando com as costas da colher para obter o máximo de líquido possível. Reserve 1 xícara para o recheio. Cozinhe o molho restante por 15 a 20 minutos, até reduzir pela metade.
Enquanto o peru descansa, despeje a marinada reservada sobre o recheio na assadeira. Leve ao forno por 20 minutos, ou até que esteja bem quente e a parte de cima crocante.
Corte o peru e sirva com o recheio.