Cut the bread into 1-inch chunks and spread them evenly in the bottom of the casserole dish.
In a large bowl, whisk together the eggs, milk, pumpkin puree, sugars, vanilla, and cinnamon. Pour the mixture over the bread, making sure all the bread is soaked.
Cover the casserole and refrigerate for several hours or overnight.
To make the streusel topping, mix the flour, brown sugar, spices, and salt. Add the butter and cut it into the dry mixture until it forms a crumble. You can refrigerate this mixture overnight if you’d like.
When ready to bake, preheat the oven to 350 degrees F.
Sprinkle the streusel topping evenly over the casserole, covering as much as possible.
Bake for 45 minutes for a softer texture or an hour for a firmer texture.
Serve warm with syrup, powdered sugar, pecans, or fresh fruit.