Coat a 9 x 9-inch baking dish with nonstick spray. Arrange half the bread slices in the bottom of the dish, tearing bread to fit as necessary to completely cover the bottom without large gaps.
Spread half of the cream cheese and pesto on the bread layer, then sprinkle with half of the mozzarella and top with half the tomato slices.
Layer with the remaining bread, cream cheese, pesto, mozzarella, and tomatoes.
Whisk together eggs, milk, salt, and pepper to taste in a bowl and pour over the bread layers. Cover with plastic wrap and chill casserole for at least 2 hours or as long as overnight.
Remove casserole from the refrigerator 30 minutes before baking.
Preheat oven to 350°F.
Bake casserole until puffed, golden, and set in the center, about an hour. Let casserole rest for 10 minutes before slicing and serving.
310 calories; 16 g fat; 6 g saturated fat; 140 mg cholesterol; 16 g protein; 27 g carbohydrates; 3 fiber; 650 mg sodium; 278 mg calcium (30% of daily value). Nutrition figures based on using fat free milk.