Grease a 9×13 inch pan with cooking spray.
Lay 8 pieces of trimmed bread on the bottom. Top each slice of bread with a piece of cheese. Sprinkle with ham, shredded cheddar, broccoli, and onion.
Lay 8 more pieces of trimmed bread on the top of this.
Whisk eggs in a bowl with milk, salt, and pepper. Pour over the bread mixture in the pan.
Let sit until the eggs have soaked into the bread. You could make this the night before if you would like and cover with tin foil until ready to bake in the morning.
Bake at 350 F for 1 hour or until eggs are set.