Preheat oven to 350F (175C) and lightly butter a casserole dish. Set aside.
Place chopped (uncooked) bacon in a large pot or Dutch oven and cook over medium heat until crisp and cooked through. Remove bacon to a paper towel lined plate and drain all but about 1 ½ Tablespoons of grease.
4 strips bacon
Add butter to the pot and allow it to melt. Add chopped onions and cook, stirring frequently until softened (3-5 minutes).
3 Tablespoon butter, 1 small onion
Sprinkle flour over onion and whisk until smooth (should be like a paste).
¼ cup all-purpose flour
Gradually add milk while whisking. Add broth, garlic powder, onion powder, ground mustard, salt, and pepper and stir well. Bring to a boil.
1 cup milk, 1 ¼ cups reduced sodium chicken broth, 1 teaspoon garlic powder, ½ teaspoon onion powder, ½ teaspoon ground mustard, ½ teaspoon salt, ½ teaspoon pepper
Once mixture begins to boil, reduce heat, bring to a simmer, and stir frequently until thickened.
Reduce heat to low and add cream cheese, 2 cups (226g) cheddar, mozzarella, and sour cream. Stir until cheeses are melted and mixture is smooth.
3 oz cream cheese, 3 cups shredded sharp cheddar cheese, 1 cup shredded mozzarella, ⅔ cup sour cream
Add hash browns, green onion, and cooked bacon pieces. Stir well and pour into prepared casserole dish, sprinkle evenly with remaining 1 cup (113g) cheddar cheese.
30 oz frozen hash browns, 3 Tablespoons finely sliced green onions
Transfer to 350ºF (175ºC) oven and bake 35 minutes until heated through and cheese on top is melted.
Notes
To Make in Advance: Follow recipe instructions through step 8 then cover tightly and refrigerate. Once you're ready to bake, remove the cover, allow it to sit at room temperature for 15-20 minutes, then bake according to recipe instructions.To Freeze: Prepare casserole through step 8. Cover tightly (make sure it is airtight!) and freeze for up to 3 months. Thaw in the refrigerator overnight before baking and then bake according to recipe instructions.