Preheat oven to 200°C/fan 180°C/gas mark 6. Bring a large saucepan of salted water to the boil and add your macaroni. Cook for roughly 5 minutes, until al dente. Drain, retaining a cup of the pasta water, and leave to the side.
Whilst your pasta is cooking, prepare the rest of your ingredients. Blitz your lightly toasted bread in a food processor/blender until you have rough breadcrumbs and set aside. Press garlic (or finely chop and crush with the side of a knife) and thinly slice leeks. Grate cheeses and halve tomatoes and set aside. Cook the haggis as per packet instructions
Whilst your haggis is cooking, prepare your sauce. Place 1tbsp of butter into a large pan along with the garlic and cook for a minute on a medium to high heat. Reduce the heat a little, add the other tbsp of butter and the leeks and cook for around 5 minutes, until tender
Stir in the flour and remove from the heat. Add milk bit by bit, whisking between each addition. Once all milk has been added, return to the heat and bring to a simmer
Continue to stir fairly continuously until sauce begins to thicken – around 5-7 minute
Add cheeses and stir until completely incorporated, retaining a small handful to be sprinkled on top. Season well with salt and pepper. If the sauce is too thick, use a small amount of the retained pasta water
Stir pasta through the sauce, then pour half into an oven proof dish. Sprinkle half of the haggis over the bottom layer before topping with the remaining pasta and sauce. Top with the rest of the haggis, dot the tomatoes over the dish, cut side down, and push in gently. Mix the breadcrumbs with parmesan and parsley and sprinkle over the top along with the leftover grated cheese
Bake in the oven for 20 minutes or until bubbling and crispy on top. Serve and enjoy!