Lightly toast bagels. As soon as they are done, lay a slice of cheese over each bagel bottom to slowly melt it.
Meanwhile, heat a large nonstick skillet over medium-low heat. Coat with cooking spray, add ham and cook until warmed through, about 1 minute per side. Lay a slice of warm ham over each slice of cheese on the bagels.
Crack the eggs into the pan, keeping them as separate as possible. Sprinkle with salt and pepper. Cover pan and cook until egg whites are nearly firm, 2 to 3 minutes. Flip eggs with a spatula, taking care not to break the yolks. Cover and cook until the yolks are nearly firm, 1 to 2 minutes. If you prefer scrambled eggs, beat the eggs with the salt and pepper before adding to the pan. Cook uncovered and stirring occasionally until the eggs are firm, 2 to 3 minutes.
Lay an egg over each piece of ham and top each with a slice of tomato, a slice of avocado and 1/4 cup watercress. Cover with bagel top and compress slightly. Cut in half before serving.
Tip: If you prefer scrambled eggs, beat the eggs with the salt and pepper before adding to the pan. Cook uncovered and stir occasionally until the eggs are firm. Divide the scrambled eggs among the bagel sandwiches.