Coat a 9 x 13-inch baking dish with baking spray. Tear the bread into pieces. Add to a large bowl.
In a medium saucepot, add milk, vanilla, butter, and sugar. Bring to a boil, then add rum. Simmer for about 10 minutes.
Add pineapple and coconut to the large bowl of bread. Pour liquid mixture, one cup at a time, over top of bread. Mix well after each addition. Continue adding liquid until bread is thoroughly moist (takes about 3 cups of liquid). Add eggs and mix well.
Pour bread mixture into prepared baking dish. Bake at 350 degrees for about 45-55 minutes or until pudding is set and springy when touched.
Add egg yolks to a small bowl. Add all ingredients to a small sauce pot except for the rum and eggs. Bring to a boil.
Pour hot sauce into the bowl with egg yolks beating rapidly so that the egg yolks don’t curdle. Return mixture to pot and cook until mixture thickens. Stir in rum.