Place raisins in a small bowl with rum and soak for a couple of hours. Drain raisins and reserve soaking liquid.
Place bread pieces in a 9 by 12-inch baking dish. Add raisins to dish. In a large bowl, combine the milk, eggs, butter, cinnamon, vanilla, heavy cream, sugar, brown sugar, molasses, lemon zest, and salt, and mix well to ensure the sugar has been dissolved. Add the reserved raisin soaking liquid to the milk mixture and pour over bread. Let sit until bread has soaked up all of the milk mixture for at least 1 to 2 hours.
Preheat oven to 350 degrees F.
Place baking dish in another large pan and add water about halfway up the sides of the baking dish. Bake for 1 hour or until bread pudding has set. Remove bread pudding from oven and let cool to just warm.
Combine sugar, evaporated milk, margarine, egg and yolks in the top of a double boiler and cook, stirring well, until thick. Do not let sauce boil. Keep warm until serving time. Whisk in rum just before serving. Serve bread pudding with sauce.