Cook the potatoes in salted boiling water for 20 minutes or until tender. Drain and set aside.
Meanwhile, put the fish in a shallow ovenproof dish with half the milk. Place on the lower rack of the halogen oven. Set the temperature to 250°C (482°F) and cook for 20 minutes until the fish is cooked through. Drain off the milk, reserving it for the sauce, and flake the fish evenly over the bottom of the dish.
Melt 25 g (1 oz) of the butter in a saucepan and gently fry the onion and celery for about 5 minutes until softened. Spoon the onion and celery mixture over the flaked fish and scatter with the parsley.
Melt a further 50 g (2 oz) of the butter in a clean saucepan and stir in the flour to make a smooth paste. Remove from the heat and gradually blend in all the reserved milk. Return to the heat and bring to the boil, stirring constantly, until thickened. Stir in half the cheese and season to taste with salt and pepper.
Spoon half the sauce over the fish. Mash the potatoes with the cream, remaining butter and seasoning, and add to the dish, spreading evenly. Scatter with the remaining cheese and place on the lower rack of the halogen oven. Set the temperature to 200°C (392°F) and cook for 20–25 minutes until the surface is golden.