Place Garlic cloves, Achiote paste, citrus juices (orange & grapefruit), oregano and cumin in a blender; process until it has a smooth texture.
Place chicken in a large glass bowl and cover with the Achiote sauce. Marinate for at least ½ hour in the refrigerator. You can also prepare this meal overnight and just cook before dinner.
Arrange the banana leaves or aluminum foil, cutting them into squares ready to assemble the chicken packages. Prepare a steamer pot or a large Dutch oven with a lid to cook the chicken.
Place one piece of chicken in the center of the banana leaf, spoon on some of the marinade sauce, and garnish with a slice of tomato, some slices of onion, 1 epazote leaves, and 1 small roasted garlic. Season with salt and pepper.
Wrap the chicken into rectangles, like when wrapping tamales. You can either use only aluminum foil for this step, banana leaves, or both. When I find fresh banana leaves, I use only those; when only frozen leaves are available, then I used both since frozen banana leaves break easily after thawing, but still, give flavor to the chicken.
If you are cooking the chicken with a steamer pot (tamalera), just add warm water to the bottom without it getting the rack. If you are using a Dutch oven or large pot, make a bed at the bottom of the pot using banana leaves or aluminum foil. Add 1 cup of hot water and place the packages inside the pot evenly. Cover with banana leaves or aluminum foil and place the lid on top.
Cook for about 12 minutes on medium-high heat and bring to a boil, then reduce to a low simmer and cook for 30 more minutes. Do not let the water run dry, refill to keep the steam going, just be careful when opening and removing the lid, since the vapor can be very hot.
To serve, unwrap the chicken, removing the banana leaves or aluminum foil, and serve with red pickled onion, habanero sauce, and warm tortillas. You can also serve with white rice and a salad.