Preheat oven to 350°F Lightly oil a 9 x 13 glass baking dish. In a large bowl, toss the bread with the olive oil and spread on a large rimmed baking sheet. Bake for about 20 minutes, tossing once or twice, until the bread is golden and lightly crispy.
Meanwhile, in a large skillet, cook the bacon over moderately high heat, stirring occasionally, until crisp, about 8 minutes. Transfer the bacon to paper towels to drain: reserve 2 Tablespoons of the fat in the skillet.
Add the onion to the skillet and cook over moderate heat, stirring occasionally, until softened, about 5 minutes. Add the tomatoes and cook until liquid is evaporated, about 3 minutes.
Return the toasted bread cubes to the bowl. Add the contents of the skillet, along with the bacon, shredded cheeses, chives and broth. Stir until the bread is evenly moistened. Spread the mixture in the baking dish and cover with lightly oiled foil.
Bake the bread mixture in the center of the oven for 30 minutes. Remove the foil and bake until the top is crispy, about 15 minutes longer. Carefully remove the baking dish from the oven and using a ladle, press 6 indentations into the bread mixture (you can do 8 if you want to). Crack an egg into each indentation. Return the dish to the oven and bake for about 15 minutes, until the egg whites are set but the yolks are still runny. Cook longer if you do not want runny yolks.