Preheat the oven to 180°C (350°F).
Grease a baking dish with butter.
Arrange the sliced hot cross buns in the greased baking dish.
In a bowl, whisk together the eggs, sugar, vanilla extract, ground cinnamon, ground nutmeg, and citrus zest.
Heat the milk in a saucepan until it's warm but not boiling. Gradually pour the warm milk into the egg mixture, whisking continuously to combine. This will temper the eggs and prevent them from curdling.
Sprinkle the raisins or sultanas over the sliced hot cross buns.
Slowly pour the egg and milk mixture over the buns, ensuring that all the buns are soaked. Gently press down on the buns to make sure they are fully immersed in the liquid.
Let the mixture sit for about 15-20 minutes, allowing the buns to absorb the custard.
Place the baking dish in a larger roasting pan. Carefully pour hot water into the roasting pan to create a water bath (bain-marie). The water should come about halfway up the sides of the baking dish.
Place the roasting pan in the preheated oven and bake for about 40 minutes, or until the pudding is set and the top is golden brown.
Once the pudding is done, remove it from the oven and from the water bath. Allow it to cool slightly before serving.
Dust the top of the pudding with icing sugar for a decorative touch.
Serve the hot cross bun pudding warm, either on its own or with a dollop of whipped cream, custard, or vanilla ice cream.Enjoy your delicious hot cross bun pudding!Remember that baking times can vary depending on your oven and the size of your baking dish, so keep an eye on the pudding as it bakes to ensure it doesn't overcook or undercook.