Make the Cinnamon Swirl Syrup. To do so, add all ingredients to a medium saucepan and bring to a boil over medium-high heat, stirring occasionally. Once boiling, cook 30 seconds, stirring constantly, and then remove from heat. Cool to room temperature.
Whisk together the eggs, milk, brown sugar, vanilla extract, cinnamon, and salt in a large bowl.
Add half of the bread cubes to the prepared casserole dish and drizzle on half of the cooled Cinnamon Swirl Syrup. Add the remaining half of the bread on top and drizzle on the remaining half of the syrup. Pour in the egg mixture, gently pressing down on the top of the bread with a spoon to make sure all of the bread pieces are soaked.
Cover the dish with plastic wrap and refrigerate 12 hours or overnight.
The next day, preheat the oven to 350F and let the pudding sit at room temperature while the oven preheats.
Once the oven is up to temperature, bake the pudding until the custard is set and light golden on top, about 25 to 30 minutes.
Whisk together all ingredients for the icing and drizzle on the pudding while it’s still hot.