Place the tagliatelle in a pan of boiling salted water and cook as per packet instructions until al-dente, drain. In the meantime place the broccoli in a pan of boiling salted water and cook for 4 minutes then drain.
Melt the butter in a frying pan and gently saute the mushrooms and garlic over a medium heat. Set aside.
Melt the butter in a non stick saucepan over a medium heat, add the flour and keep whisking to cook out the flour for a couple of minutes. Gradually add the milk in batches, taking time to whisk to a smooth sauce at each stage. Once all the milk has been combined add the single cream and season with salt and pepper.
In a large mixing bowl place the tagliatelle, broccoli, mushrooms, ham and the majority of the parmesan and cheddar cheese (setting some aside to top the finished dish). Pour over the white sauce and stir gently to combine all the ingredients. Place in a large oven-proof dish and top with the remaining cheese.
Place in a pre-heated oven at 180CFan and bake for 40 minutes until the dish is bubbling. Serve immediately.
This recipe can be made a day in advance, covered with clingfilm and kept overnight in the fridge.