Crack the eggs into a very large jog or mixing bowl and whisk to break up the yolks. Whisk in the half and half and milk then add in the cinnamon, brown sugar, vanilla and salt.
Grease a large baking dish with softened butter and place the bread pieces into it. Pour the egg mixture over the bread and toss to ensure that all pieces are coated.
Cover and place in the fridge overnight.
To make the topping mix together the brown and white sugar, cinnamon, nutmeg and salt then add in the diced butter pieces. Rub together with your fingers until you have a crumbly mixture. Cover and place in the fridge overnight.
When ready to bake, preheat the oven to 350 degrees F. Remove the French toast from the fridge and sprinkle the topping over the top.
Place in the oven uncovered for an hour until the top is golden brown and crunchy and the egg mixture is set (you can insert a knife to check this)
I cover mine with foil for the last 15 minutes if the top is becoming too golden brown.
Remove from the oven and allow to sit for ten minutes before serving.
I served this with powdered sugar, bananas, blueberries and raspberries and a generous drizzle of maple syrup.