Preheat the oven to 180 degrees C. Grease a 20x30cm Swiss roll pan.
In a large bowl, stir together the flour, 2 cups sugar, bicarb soda and salt. Set aside. Combine the water and 3/4 cup of butter in a saucepan and bring to a boil. Remove from the heat and stir in 1/2 cup peanut butter and vegetable oil until well blended. Stir this mixture into the dry ingredients. Combine the eggs, buttermilk and vanilla; stir into the peanut butter mixture until well blended. Spread the batter evenly in the prepared pan.
Bake for 18 to 26 minutes in the preheated oven, or until a toothpick inserted near the centre comes out clean.
While the cake bakes, place 2/3 cup sugar, evaporated milk and butter in a saucepan. Bring to a boil, stirring constantly. Cook stirring for 2 minutes. Remove from heat and stir in the peanut butter, marshmallows and vanilla until marshmallows are melted and the mixture is smooth.
Spoon the icing over the warm cake and spread in an even layer. Allow to cool before cutting and serving.