In a large skillet over medium-high heat, cook the breakfast sausage, breaking it up as it browns, until no longer pink. Remove with a slotted spoon and set aside.
In the same skillet, cook the chopped bacon until crisp. Remove and set aside, leaving 1-2 tablespoons of fat in the pan (drain off any excess).
Add the thawed hash browns to the skillet in an even layer. Let them cook undisturbed for 4-5 minutes until golden and crisp on the bottom, then stir and repeat until mostly browned.
Add the diced onion and bell pepper to the skillet and cook for 3-4 minutes until softened. Stir in the spinach and cook just until wilted, about 1 minute.
Grease a 9x13-inch baking dish. Spread the hash brown and vegetable mixture in an even layer on the bottom.
Scatter the cooked sausage and bacon over the hash browns, then sprinkle with half the cheddar and half the Monterey Jack.
In a large bowl, whisk together the eggs, milk, garlic powder, smoked paprika, salt, and pepper for about 1 minute until well combined and slightly foamy.
Pour the egg mixture evenly over the casserole, gently shaking the dish so it settles into the layers.
Top with the remaining cheddar, Monterey Jack, and sliced green onion.
To bake right away: preheat oven to 375°F. Cover with foil and bake for 20 minutes, then uncovered for 25-30 minutes more, until the center is set and the top is golden.
To make ahead: cover tightly and refrigerate for up to 24 hours before baking; add 5-10 extra minutes to the covered bake time since it's starting cold.
Let the casserole rest for 10 minutes before slicing and serving.