In a medium bowl, mix lemon rind, oil, oregano and rosemary. Transfer 1/4 cup (60ml) of the oil mixture to a small bowl and stir in the garlic. Rub the garlic mixture all over the lamb to coat, then cover and refrigerate lamb for at least 4 hours and up to 1 day.
Meanwhile, stir the spring onions, olives, capers, parsley and shallot into the remaining oil mixture. Stir in lemon juice. Season with salt and pepper. Cover and refrigerate for at least 4 hours and up to 1 day.
While the lamb is marinating, to make the yoghurt sauce, in a medium bowl, mix the yoghurt, shallots and mint. Season to taste with salt and pepper. Cover and refrigerate for at least 4 hours and up to 1 day.
Preheat oven to 180°C (160°C fan-forced). Place the lamb on a rack in a roasting pan and roast for 1 hour 40 mins (or 20 mins per 500g) or until the lamb is cooked to your liking. Transfer the lamb to a carving board and rest for 15 mins.
Thinly slice the lamb across the grain. Sprinkle the lamb with mint leaves and serve with the salsa verde, yoghurt sauce and flatbread.