In large skillet, sauté ham and onion in 3 tablespoons butter until tender (not brown). Add eggs, scramble until just set. Remove from heat, set aside.
To prepare cheese sauce: In another pan, melt butter over medium heat. Blend in flour, salt and pepper. Add milk gradually, stirring continuously. Cook and stir until bubbly. Stir in cheese until melted. Fold eggs and mushrooms into sauce. Turn into 12 x 7-inch baking dish.
Combine topping ingredients; mix with fork and sprinkle over top. Cover and refrigerate overnight until 30 minutes before baking. Bake uncovered at 350° for 30 minutes.