Preheat the oven to gas 6, 200°C, fan 180°C. Heat a large non-stick heavy-bottomed saucepan, add the mince, season well and fry over a medium-high heat for 5 mins, stirring frequently until golden brown. Add half the chopped onions and the celery and season. Fry over a medium heat for 5-6 mins or until softened. Add the garlic and fry for another minute. Add the grated carrots and red wine and bubble for 3-4 mins.
Then add the tinned tomatoes, stock, and one of the bay leaves and bring to the boil. Cover with a lid, turn down the heat to medium-low and leave to simmer for 45 mins, stirring occasionally. Remove the lid and simmer for another 15 mins or until the sauce has thickened slightly.
While the mince is cooking, put the rest of the onion in a saucepan with the remaining bay leaves, peppercorns and the milk (reserving 3 tbsp) and place over a low heat. Bring to a gentle simmer and cook for 2–3 mins. Remove from the heat and leave the milk to infuse for 10 mins. Drain through a sieve and discard the bay leaf, onion and peppercorns.
Put the cornflour in a small bowl, add the reserved milk and whisk to a thick paste. Add to the infused milk, place over a low heat and simmer, stirring frequently for 5 mins or until thickened. Add the mustard and grated nutmeg and season well, adding a little more milk if the sauce is too thick.
Spoon half of the mince mixture into a lasagne dish. Top with an even layer of blanched courgettes, then season well. Repeat with the rest of the mince and finish with the rest of the courgettes. Pour the white sauce over the top and place the sliced tomatoes in lines on the top. Mix the Cheddar and Parmesan cheeses and sprinkle over the top. Bake for 30 mins or until golden-brown and bubbling.