Make marinade. Peel and quarter both onions. Add 1 onion to the blender along with the zest and juice of 1 orange, the lime juice, tomato, salt, achiote paste and brown sugar. Puree until smooth.
Marinate. Rinse turkey and remove the neck and giblets if necessary and pat dry inside and out with paper towels. Place turkey in a roasting pan and pour achiote marinade all over the turkey, rubbing it into the skin on all sides. Let sit, uncovered, in the refrigerator for 48 hours.
Remove from refrigerator. Two hours before you plan to roast the turkey, remove from the refrigerator. Pour any liquid into a bowl for basting, wash the roasting pan and place turkey on a rack inside the clean roasting pan.
Let come to room temperature. Rub the olive oil over the turkey. Cut remaining orange into quarters and stuff the turkey cavity with the orange, remaining onion, and garlic, if it won’t all fit inside the turkey you can place it around the turkey in the roasting pan. Let turkey come to room temperature.
Roast. Heat oven to 350°F and arrange a rack on the bottom. Roast turkey for 15 minutes for every pound, so if you are dealing with a 12 pound turkey this should take you about 3 hours. Baste the turkey with the juices you saved, every 15 minutes or so. If the wing tips, legs, or breast are getting too dark, cover with aluminum foil.
Use meat thermometer to see if it is done cooking. Start taking the temperature of the turkey about an hour before it’s supposed to be done. Insert a meat thermometer in the thickest part of the thigh and breast. The thigh should read 165°F and breast 160°F when it is done.
Carve. Transfer turkey to a cutting board, tent with foil, and let rest about 15-30 minutes before carving.