Holding each asparagus spear at base and halfway up stalk, bend just until stalk snaps at natural breaking point. Pour water into large skillet to depth of 1 inch (2.5 cm); bring to boil. Arrange spears in 2 layers in water. Cover and cook for 2 minutes or until bright green and still crisp. Drain; chill under cold water. Drain; set aside on towels.
Cut ham Into 1/4-inch (5 mm) wide strips; cut into about 1 -inch (2.5 cm) lengths to make strips. Thin end from green onion; halve stalk lengthwise and slice thinly crosswise. Set aside.
In large bowl, stir together flour, baking powder, salt and pepper. In another bowl, whisk together eggs, milk and butter; pour over flour mixture. Sprinkle with green onion and 3/4 cup (175 mL) of the cheese; stir with wooden spoon just until smooth.
Spoon half of the batter into greased 9-inch (2.5 L) square cake pan, spreading over bottom. Arrange half of the asparagus in single layer over top. Sprinkle with ham.
Spoon in remaining batter, spreading evenly. Arrange remaining asparagus over top. Sprinkle with remaining cheese. Bake in 375°F (190°C) oven for 50 to 60 minutes or until golden brown and cake tester inserted in centre comes out clean. Let cool in pan on rack for 10 minutes.
Invert wire rack over pan. Holding both tightly together, invert pan to turn bread out onto rack. Remove pan. Invert serving platter onto bread. Holding rack and platter together, quickly invert. Remove rack. Serve warm or at room temperature. (Bread can be cooled, covered with plastic wrap and set aside for up to 4 hours.).