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.
Add butter to the pot and allow it to melt. Add chopped onions and cook, stirring frequently until softened (3-5 minutes).
Sprinkle flour over onion and whisk until smooth (should be like a paste).
Gradually add milk while whisking. Add broth, garlic powder, onion powder, ground mustard, salt, and pepper and stir well. Bring to a boil.
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.
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.
Transfer to 350ºF (175ºC) oven and bake 35 minutes until heated through and cheese on top is melted.
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.