Preheat the oven to 200 degrees Celsius or 400 degrees Fahrenheit.
Pour the milk, nutmeg, bay leaf and peppercorns into a deep, wide saucepan and bring to a simmer. Lay the haddock in and poach gently for 5 minutes.
Remove the fish with a spatula and transfer to a plate to cool. Strain the milk through the sieve into a jug. When the fish is cool enough to handle, remove the skin and flake into chunks, discarding any bones.
Put the spinach into a large pan with a splash of water and cook over a high heat for 1 to 2 minutes until just wilted. Drain in a sieve and put out any excess liquid with the back of a ladle.
Bring a large pan of salted water to the boil, add the pasta and cook for 8 to 10 minutes or until al dente. Drain and set aside.
Melt the butter in a large saucepan and whisk in the flour. Cook for 3 to 4 minutes until the mixture starts to turn a light brown colour. Gradually whisk in the reserved milk; don’t add too much at once or the sauce will turn lumpy.
Once all the milk has been incorporated bring the sauce to a simmer and cook gently for 2 minutes, whisking constantly.
Remove the pan from the heat and whisk in the mustard and cheese. Add the cooked pasta, haddock, spinach and crab to the sauce and stir until evenly coated.
Pour the mixture into a large ovenproof dish then sprinkle the breadcrumbs and parmesan over the top.
Bake in the oven for 20 to 25 minutes or until the cheese is golden brown and bubbling. Remove from the oven and leave to cool for a few minutes before serving.