Preheat your oven to 350°F (175°C). Lightly coat a 9x13-inch baking dish with nonstick cooking spray to prevent the casserole from sticking.
Add the breakfast sausage to a large skillet over medium heat. Cook for 7-10 minutes, breaking it into small crumbles with a spatula as it browns. Once the sausage is fully cooked and no pink remains, drain off any excess grease.
Spread the cubed French or Italian bread evenly across the bottom of the prepared baking dish. Scatter the cooked sausage and diced ham over the bread, making sure they're evenly distributed. Sprinkle 1½ cups of shredded cheddar cheese over the top.
Crack the eggs into a large mixing bowl. Add the milk, garlic powder, onion powder, salt, and black pepper. Whisk everything together until the eggs are fully beaten and the seasonings are evenly mixed in. Slowly pour the mixture over the bread, sausage, ham, and cheese.
Using the back of a spoon or spatula, gently press down on the bread cubes so they absorb some of the egg mixture. Sprinkle the remaining ½ cup of cheddar cheese evenly over the casserole.
Place the baking dish in the preheated oven and bake uncovered for 40-45 minutes, or until the center is set, the eggs are fully cooked, and the top is lightly golden. If the center still looks wet, continue baking for a few more minutes, checking frequently.
Remove from the oven and let the casserole rest for 5-10 minutes before cutting into squares. Garnish with chopped fresh parsley, if desired, and serve warm.