Pre-heat oven to 350 and grease a 9" x 13" up to a 11" x 15" baking dish.
I used a 10 x 12 dish. The original recipe calls for an 11 x 15 dish. You can also use a standard 9 x 13 dish and increase bake time a little since it will be thicker. See below for bake times.
In a skillet with oil/butter, saute garlic, onions, bell peppers and mushrooms for about 5-7 minutes or until onions appear slightly translucent. Set aside.
In a large bowl, mix together potatoes, ham and 1 cup of each of the cheeses and spread half of mixture into prepared baking dish.
Top the hashbrown layer with sauted veggies and chopped up broccoli.
Spread remaining hashbrown mixture evenly over the veggies.
In the same mixing bowl, whisk together milk and sour cream until well-blended. Add in eggs, garlic powder, salt and pepper, mixing well.
Pour the egg mixture evenly over the casserole.
Top with remaining cheese (1 cup total) and sprinkle with parsley.
Cover loosely with foil and bake for 30 minutes. Uncover and bake for another 30-35 minutes or until edges are browned and the casserole is set and doesn't appear to be runny. If using a 9x13 baking dish, bake for another 10 minutes or so, keeping a close eye.
Remove from oven and let cool for about 10 minutes to set before serving.
Enjoy hot or at room temperature!
Refrigerate leftovers if you plan to eat them within the next few days. Simply warm them up in the microwave or in a toaster oven at 350 for about 10 minutes.
For longer-term storage, cut remaining casserole into single-sized portions and freeze on a plate. Once frozen, store them inĀ containers or freezer bags. When ready to eat, warm it up, covered, in a toaster oven at 350 for about 15-20 minutes or until heated throughout.
To make this ahead of time, prepare the casserole, cover and store in the refrigerator up to 24 hours before baking. You will need to add more baking time right out of the fridge.