Put the lamb into a large food bag with the fruit juices and marinate overnight.
The next day, take the lamb out of the fridge 1 hour prior to cooking.
Preheat the oven to 220°C / 425°F / Gas mark 7.
Prepare a roasting tin.
Remove the lamb out of the marinade (reserve any remaining marinade) and pat dry.
Rub with half the oil and roast for 15-20 minutes until browned.
Remove the lamb and reduce the oven temperature to 160°C / 325°F / Gas mark 3.
Mix the zests, remaining oil, honey, spices and garlic with plenty of salt and pepper.
Lay a large sheet of baking parchment on top of a large sheet of foil.
Sit the lamb leg on top, rub all over with the paste and pull up the sides of the foil.
Drizzle marinade into the bottom and seal.
Place on the roasting tin and roast for 4 hours, until very tender.
Add the vegetables and the red onion in the last hour mixing through to coat with cooking juices then lay the lamb on top again.
Remove and allow it to rest, with foil wrapping kept on for 30 minutes.
Unwrap and serve with any remaining juices poured over.