Lightly butter an 8-inch (20-cm) square pan and set aside.
In a large, heavy saucepan over medium heat, combine the butter, sugars, corn syrup, half-and-half, and salt and bring to a boil, stirring constantly. Using a pastry brush dipped in hot water, brush down any sugar crystals that form on the sides of the pan. Boil for 2 ½ minutes and then stir in the chocolate until melted and well blended. Continue to boil, without stirring, until a candy thermometer reads 234°F (112°C), 7–10 minutes.
Remove from the heat and let cool until almost room temperature, or 110°F (43°C) on a candy thermometer, about 15 minutes. Using an electric mixer, beat the fudge until the color dulls and the fudge is creamy, 2–3 minutes. Mix in the walnuts by hand.
Sprinkle the marshmallows in the prepared pan and spoon the fudge over them. Lay a piece of plastic wrap across the surface and, using your hands, press the fudge down into the marshmallows. Remove the plastic and smooth the surface of the fudge with a spatula. Cover the pan with aluminum foil and refrigerate until firm, about 6 hours. Cut into 2-inch (2.5-cm) bars, or any shape desired, to serve or give as a gift.