Preheat a waffle iron to medium-high. Preheat the oven to 95°C. Whisk together the flour, Gruyere, ham, Parmesan, baking powder, sugar, 1/4 teaspoon salt and a few grinds of pepper in a large bowl. Whisk together the milk, butter, oil, 1 egg and the spring onions in another bowl. Pour the milk mixture into the flour mixture and gently stir until just incorporated (it's okay if there are some lumps).
Lightly brush the top and bottom of the waffle iron with butter. Fill the waffle iron about three-quarters of the way full (some waffle iron should still be showing). Close the lid gently and cook until the waffles are golden brown and crisp, 6 to 7 minutes. Keep the cooked waffles warm in the oven or covered with foil on a plate while you make the remaining waffles.
Lightly brush the waffle iron bottom with more butter. Crack the remaining 4 eggs right onto the waffle iron and keep the iron open (do this in batches if your iron isn't large enough). Sprinkle the eggs with salt and pepper. Cook until the whites are set and the yolk is still runny, 4 to 5 minutes. Serve 1 egg on each waffle, using a spatula to transfer.