Preheat your oven to 190 C. Arrange fish chunks in a single layer in a large baking dish, set aside.
Melt butter in a saucepan over medium-low heat. Whisk in flour, and stir until the mixture becomes paste-like and light golden brown, 2 to 5 minutes.
Gradually whisk warm milk into the flour mixture and bring to a simmer over medium heat. Whisk until the sauce is thick and smooth, about 5 minutes. Whisk in white Cheddar cheese, then mix onion, spinach, salt, and black pepper into the sauce.
Remove saucepan from heat and stir in garlic. If sauce is too thick, stir in more warm milk, 1 tablespoon at a time.
Pour sauce over fish in the baking dish.
Layer mashed potatoes on top.
Bake for 30 minutes, then sprinkle with the yellow Cheddar cheese. Continue baking until fish is easily flaked with a fork, about 15 to 20 minutes more and the cheese should be a nice golden brown. Remove from oven, let rest for 5 minutes, serve with a green salad.