Cut bread into 1-inch cubes and arrange evenly in a greased 9x13-inch baking dish.
Whisk eggs, milk, heavy cream, vanilla, and sugar in a bowl, then pour over the bread.
Cover with plastic wrap and refrigerate for at least 4 hours or overnight.
For the topping, mix flour, brown sugar, cinnamon, and salt in a bowl; cut in butter until crumbly.
Place the topping in a resealable bag and refrigerate overnight.
Preheat the oven to 350°F when ready to bake.
Sprinkle the prepared topping evenly over the bread.
Bake, uncovered, for 45-60 minutes, adjusting for your desired texture.