Simmer the potatoes for about 20 mins until tender, then drain and mash with most of the butter, plenty of seasoning and a little milk. Season and set aside.
Meanwhile, cut the fish into 2cm cubes. Bring the milk just to a simmer in a large frying pan – when you see a few small bubbles, add the fish, onion and bay leaves, then cover and cook for 6-8 mins. Lift the fish out onto a plate and strain the milk into a jug.
Melt the butter in a pan, stir in the flour and cook for 1 min over a medium heat. Take off the heat, pour in a little poaching milk, then stir until blended. Continue to add the milk gradually, mixing well until you have a smooth sauce. Return to the heat, bring to the boil, then simmer for 5 mins, stirring continuously, until it coats the back of a spoon. Remove from the heat, season with salt, pepper and nutmeg, then mix in the parsley.
Heat oven to 200C/180C fan/gas 6. Divide the fish between 2 ovenproof dishes, about 1.3 litres each and strain any juices into the sauce. Scatter over the prawns, then add the eggs to both dishes if eating straightaway, or to just one dish if freezing the other. Pour the sauce over both. Spoon half of the mash over one dish so it covers everything, making sure it reaches the sides. Rough up the top with a fork and dot with remaining butter. Bake for 30 mins until the top is golden. Freeze the remaining fish and mash (see tips, below).