1. Preheat the oven to 220C/425C/Gas Mark 7.
2. Place the leg of lamb in a large roasting tin. Cut some deep incisions into the lamb insert a few of the slices of garlic then rub some mustard on top and sprinkle the herbs all over the leg. Season well with salt and freshly ground black pepper.
3. Next, in a large saucepan, place the baby potatoes and fill with salted water. Bring to the boil and simmer for 20 minutes until cooked through. Drain, peel and slice the potatoes. Keep aside in a bowl.
4. Place the lamb on a roasting tray layered with 3 onions sliced, a few garlic cloves and extra herbs if desired and place in the oven. Cook for 1 ½ - 1 ¾ hours, then remove from the oven and allow the lamb to rest 10 minutes before carving.
5. Meanwhile, continue to prepare the gratin. In a large sauté pan, over high heat, drizzle the olive oil and sauté the courgettes slices, in batches, for 3 -4 minutes until caramelized and softened. Season with salt and pepper. Transfer each batch in the bowl with the cooked potatoes slices. Add the rest of the garlic and sliced onions and toss to combine then transfer in a gratin dish.
6. In a second bowl, combine the crème fraiche, egg, salt, pepper.
7. Pour the mixture over the courgette in a gratin dish. Top with the hazelnuts.
8. Place in the oven when the leg has 15 minutes left before being cooked and cook for 20 minutes or until the eggs are set and the top has caramelized.
9. When the leg of lamb has rested carve and serve immediately with the courgette gratin.