Preheat oven to 250°F. Place wire rack over baking sheet.
Combine potatoes, onion, ¼ teaspoon salt and pepper in medium bowl and mix well with tongs or your hands.
Heat 2 tablespoons butter and oil in small (6- to 8-inch) nonstick skillet over medium heat.
Add potato mixture; spread to cover bottom of skillet evenly, pressing down gently with spatula to flatten.
Cook 10 minutes or until bottom and edges are golden brown. Cover skillet with large inverted plate; carefully flip hash browns onto plate. Slide hash browns back into skillet, cooked side up. Cook 10 minutes or until golden brown.
Slide hash browns onto prepared wire rack; place in oven to keep warm while preparing ham and eggs.
Melt 1 tablespoon butter in same skillet over medium-high heat. Add ham and cook and stir 2 to 3 minutes or until lightly browned. Remove to plate.
Whisk eggs, milk and remaining ⅛ teaspoon salt in a bowl. Melt remaining tablespoon of butter in same skillet over medium-high heat.
Add egg mixture; cook 3 minutes or just until eggs are cooked through.
Place cheese slices on top of eggs; remove from heat and cover skillet with lid or foil to melt cheese.
Place hash brown on serving plate; sprinkle one side of hash brown with ham. Top ham with eggs and fold hash brown in half and serve.