Put the lamb leg skin-side down on a board, and open out so it’s flat (untie it if you need to). Make slashes into the meat lengthways, but not all the way though, so you get a larger surface of meat. Season well on both sides and put into a large re-sealable bag, then add all the marinade ingredients with the 2 whole rosemary sprigs and 100ml oil. Put into a container seal-side up and chill for 24 hours.
Put the finely chopped herbs, breadcrumbs, apricots, shallots and walnuts in a large bowl, season, and mix well with your hands. Heat the oven to 200C/fan 180C/gas 6. Remove the meat from the marinade and mix 4 tbsp of the marinade liquid into the stuffing.
Spread the stuffing onto the flesh-side of the lamb and fold over the sides, sealing in the stuffing.
Tie two or three knots around the lamb to hold in place while you secure the whole thing.
Tie one end in a double knot with kitchen string.
Make a loop with the string, and pull over the top of the lamb lowering it over the first knot, tightening about 3cm down.
Repeat until the whole leg is secure, then finish with another double knot.
Put into a roasting tray skin-side up, with the onions, garlic and herbs from the marinade (keep the remaining liquid for the gravy), season and drizzle with more olive oil. Roast for 40 minutes, then turn the oven down to 180C/fan 160C/gas 4 and cook for another 40-50 minutes, or until the internal temperature is at 65C. Sit under foil for 20 minutes before carving and serving with roasties, greens and gravy.