In a large skillet, fry the bacon until crispy. Remove the cooked strips to a paper towel lined plate and allow to cool.
Remove all but 1 Tablespoon of the bacon fat from the skillet. Add the onion and saute until soft and translucent, about 6-7 minutes. Stir in the garlic and spinach and saute for another minute or so or until spinach is wilted.
Meanwhile, in a mixing bowl, whisk together the eggs, half and half, salt, pepper, and chives.
In a greased 9 x 13 inch baking dish, layer the bread cubes, half the cheeses, the spinach and onion mixture and then the bacon. Pour the egg custard evenly over the top. Sprinkle with remaining cheese. Cover with saran wrap and refrigerate overnight or for at least 6 hours.
Remove the casserole from the fridge and allow it to sit at room temperature for 20 minutes while the oven is preheating to 350 degrees. Remove the saran wrap and bake for 35-40 minutes or until cheese is melted and edges are golden brown. Serve immediately.