Make the marinade by adding cilantro, olive oil, orange zest, 3/4 cup orange juice, lime juice, lime zest, garlic, mint, oregano, chili, cumin, salt, and pepper in a food processor. Process until well combined. Transfer marinade to a gallon size freezer bag and add the pork shoulder. Marinate in the refrigerator for at least 2 hours or over night.
Remove pork from refrigerator and preheat oven to 325°F.
Arrange onion quarters in a roasting pan. Place pork on top. Reserve remaining marinade. Cover pan with foil and roast 2 1/2 hours. After 2 1/2 hours, remove foil and additional 30 minutes.
Remove pork from oven and let rest for 10-15 minutes.
Skim roasting pan drippings and add to reserved marinade. Transfer drippings and marinade to a small sauce pan. Add 1/4 cup orange juice and bring to a boil.
With a fork, shred the pork and top with 1/3 of the sauce to keep it from drying out. Cover and set aside.