Lightly grease a 9x13 inch baking pan/casserole dish.
Cut bread slices into 1-inch cubes. Fill prepared pan with the bread cubes.
In a large liquid measuring cup or bowl whisk together milk, eggs, vanilla, and sugar.
Slowly pour egg mixture over the bread cubes, making sure to get them all covered as much as possible so you don't have any dry bread showing. Cover pan tightly with plastic wrap and set aside.
In a medium bowl whisk together the flour, brown sugar, cinnamon, and salt for the streusel. Use a fork or pastry cutter to cut butter into flour mixture. Once mixture resembles coarse crumbs, smoosh it with your fingers to work the butter into the mixture a little more.
Cover bowl tightly with plastic wrap and refrigerate along with the casserole for at least 4 hours, or overnight. (See note)
Preheat oven to 350. Remove plastic wrap from the casserole dish and cover with foil.
Bake for 30 minutes, covered, then remove foil, sprinkle streusel mixture over the top, and bake for another 20-25 minutes until bread is cooked through to your liking (I like it baked through a little more and more "dry" throughout so I bake mine for 25-30 minutes).
Drizzle with syrup, cut into squares, and serve!