Without cutting the string, make small slashes all over meat. Tuck garlic slices into slashes.
In a large bowl, combine orange juice, lime juice, orange peel, cumin, and oregano. Add pork; turn to coat all sides. Cover and refrigerate at least 30 minutes or up to 1 day; turn meat over occasionally.
In a barbecue with a lid, mound and ignite 60 charcoal briquets on firegrate. When coals are covered with ash, in 20 to 30 minutes, push half to each side of the firegrate. To maintain heat, add 5 briquets to each side now and every 30 minutes of cooking. Lay a drip pan between the mounds of coals. Set grill in place. Or turn gas barbecue on high and heat, covered, 10 minutes, then adjust for indirect, medium heat; set a drip pan beneath grill.
Place pork on grill over drip pan. Brush with a little of the marinade, then cover barbecue and open vents. Reserve 1/2 cup marinade to brush over meat occasionally as it cooks. Pour remaining marinade into a 2- to 3-quart pan.
Cook pork until a thermometer inserted into center of thickest part registers 165°, at least 2 1/4 hours. Brush meat occasionally with the 1/2 cup of marinade.
Transfer the roast to a platter and let stand in a warm place at least 20 minutes (the interior is pink, but it will turn white as the meat rests).
Add broth, wine, and cornstarch mixture to pan with marinade. Stir over high heat until sauce is boiling.
Remove string and cut meat into thin slices. Offer sauce, salt, and pepper to add to taste.
Nutritional analysis per serving using half the roast. Other half used in Pork Enchiladas recipe.