Melt the butter in the microwave or on a bain marie and wait for it to cool down. The milk will drop to the bottom and the fat will be left on the top. We won't be using the milk.
Whisk together the yolks with the water in a bowl.
Put the bowl on a bain marie on medium-low heat and whisk constantly until they become foamy. If you feel it's heating up too much (starts scrambling) take it off the heat and whisk quickly. If it needs further cooking after that return it to the bain marie.
Once foamy and thick take them off the bain marie and add the fat from the butter in a slow stream while whisking so it doesn't split. Once you get a nice consitency (like a light mayonnaise), add salt and pepper and cover with plastic film touching the surface of the hollandaise to prevent a skin from forming on the top.
Bring the water and vinegar to a boil.
Break the egg into a small container or ramekin.
Lower the heat for the water until you don't see any bubbles.
Make a swirl with a spoon, bring the container with the egg close to the water and turn it over at once.
Carefully and delicately stop the swirl in the water to prevent the egg from stretching.
Let cook for 2min or until you can touch it and feel the egg white hard and the yolk liquid in the center. Whenever you add another egg you want to bring the water back into a boil before lowering the heat and adding it.
Cut the tail of the egg (formed by the most liquid part of the egg white) off. Place it on a dish first so the extra water can fall off it.
Lay the ham on the bread and place the egg on top.
If the hollandaise has thickened too much you can add a bit of warm water to it, a few drops at a time because it becomes liquid with little water. Serve on top of the egg.