Make béchamel: In a medium pot, melt the butter over medium heat. Stir in flour and mix until smooth. Add milk, little by little, stirring constantly to avoid lumps.
When all the milk is added, heat until almost boiling, stirring occasionally until sauce is thickened. Stir in the Jarlsberg cheese and half of the parmesan. Add nutmeg, salt and freshly ground black pepper to taste.
For the fish: Fill a large pot 2/3 full with water, add peppercorns, bay leaf, and vinegar, and bring to a boil. When the first bubbles occur, take pot of the heat, add the fresh fish and let seethe until cooked through.
Drain, keeping the water (which by now is a stock), and set aside. Reheat and repeat with the rehydrated saltfish. (Cook the fresh and salted fish separately, as the salted fish takes longer to cook.)
Rinse spinach in cold water. In a large pot, melt butter over high heat. Add rinsed spinach (as wet leaves steam better than dry) to the pot. Stir until it collapses (not much more than 1 minute). Set aside.
Preheat the oven to 350°F (180°C). In an ovenproof dish, arrange fish, sauce and spinach in layers, making sure to balance your ingredients so that the finishing layer is sauce. Sprinkle with breadcrumbs and the rest of the parmesan.
Bake the gratin for 35 minutes or until the surface has obtained a nice golden brown color. The time may depend on the thickness of the oven proof dish you are using and the intensity of the heat in the oven. Test that it is hot throughout by poking with a knife. If it come out hot, the gratin is finished and ready to serve.