Set the oven rack in the middle position. Preheat the oven to 350 degrees F. Coat a 9-inch by 13-inch ovenproof glass baking dish with vegetable spray. Set aside a larger metal baking pan and rack for the water bath.
To prepare the bread: Brush each slice of brioche on both sides with melted butter.
To make the custard: Combine cream cheese and sugar in a bowl and mix until smooth.
Combine eggs, pumpkin, milk, heavy cream, vanilla, salt, allspice, ginger, nutmeg, and cinnamon in the bowl of a standing mixer fitted with the paddle attachment. Beat until smooth. Add cream cheese mixture and combine.
Pour 1/2 cup pumpkin custard in bottom of baking dish. Tilt and swirl dish until bottom is completely covered with a thin layer of custard. Layer 6 slices of brioche on top of custard. Pour half of remaining custard over brioche. Add remaining brioche and custard in layers.
To add the topping: Use a knife to cut 8 slits through layered pudding. Cover top of pudding with plastic wrap and press down gently with your palm. Let stand 15 minutes.
Remove plastic wrap and sprinkle brown sugar over top of pudding. Pour melted butter over sugar.
Place baking dish on rack in large metal pan. Pour hot water from a glass measuring cup into the outer pan until water level rises halfway up sides of baking dish. Place carefully in oven. Bake 1 hour to 1 hour and 15 minutes, or until top is nicely browned and custard has rise to top of baking dish.
Check water bath occasionally and add more water if needed. Do not let the water evaporate form the water bath.
Carefully remove baking dish from oven and water bath. Allow pudding to cool on rack 1 hour. Serve slightly warm or cold with whipped cream or vanilla ice cream. Store covered with a paper towel and plastic wrap in the refrigerator.