Preheat the oven to 200℃/180℃ fan (390℉/355℉).
Add the tomatoes, garlic, rosemary and fennel seeds to a medium-sized roasting dish. Season to taste with salt and pepper and drizzle with the olive oil. Toss together well.
Roast the tomatoes for 20-25 minutes until well roasted but not blackened. Set aside and turn off the oven.
Meanwhile, bring a large pot of salted water to the boil. Cook your pasta until al dente. Drain and set aside.
Now make the creamy pesto sauce. Melt the butter in a medium-large frying pan on a medium heat. Add in the flour and stir together. Cook for 30 seconds.
Slowly add the milk and stir until everything is combined. Lower the heat and allow to thicken for a couple of minutes, stirring often.
Dice half of the mozzarella. If you are not using low-moisture mozzarella use kitchen towel to dry the cheese as much as possible. Stir the diced mozzarella into the white sauce until it melts.
Take the pan off the heat. Stir through the pesto and season with salt and pepper to taste. Set aside.
Preheat the grill to 200°C/400°F.
Add the pasta to the cheesy pesto sauce and stir to coat the pasta.
Tip the pasta into a large roasting dish and spoon over the tomatoes and garlic. Drizzle over all of the olive oil left in the roasting dish.
Top the pasta with torn up pieces of the remaining mozzarella and sprinkle with the grated Parmesan.
Place under the hot grill until the mozzarella is golden and bubbling, around 5-10 minutes. Serve!