To make the marinade, place the achiote paste, bitter orange or its substitute, chicken broth, charred garlic cloves, oregano, cumin, allspice, salt and pepper in the blender or food processor and puree until smooth.
Rinse chicken pieces and pat dry. Place in a zip lock bag or container and pour the marinade on top. Make sure all the chicken pieces have been bathed in the marinade. Close or seal the bag or container and place in the refrigerator for 4 to 24 hours. Flip and move around the chicken pieces once or twice along the way.
Remove the chicken from the refrigerator. Preheat the oven to 450 degrees.
Spread the roughly chopped red onion and tomatoes on a large baking dish/pan. Place the chicken pieces on top of that layer and pour the marinade on top, making sure the pieces are not on top of each other. Place in the oven and roast for 25 to 30 minutes or until the skin has nicely browned and crisped.
Remove the baking dish from the oven. Flip the chicken pieces to the other side and baste with the marinade. If using banana leaves, wrap them around the chicken making a bundle. Cover the whole baking dish with aluminum foil, securing it around the edges. The less steam that is able to escape, the better.
Lower the oven temperature to 350 degrees. Place the baking dish back in the oven and let the chicken bake for about 1 1/2 hours. The chicken should be completely cooked through and almost coming apart from the bones. Remove the baking dish from the oven and let it rest for 10 to 15 minutes.
Place the chicken on a platter. You may serve whole chicken pieces or remove the meat from the bones. Ladle the remaining sauce into a bowl and either drizzle the sauce over the chicken or serve it on the side. This dish is also delicious with a side of pickled onions and habanero salsa.