Preheat your oven to 350°F (175°C). Grease and flour a 9x13-inch sheet pan, or line with parchment paper for easy removal.
In a medium bowl, whisk together the flour, baking soda, and salt. Set aside.
In a small saucepan, combine cocoa powder and water. Bring to a simmer, whisking constantly until smooth. Remove from heat and set aside to cool slightly.
In a large mixing bowl, beat together melted butter and sugar until smooth. Add eggs, one at a time, mixing well after each addition. Stir in vanilla extract.
Alternate adding the flour mixture and buttermilk, starting and ending with the flour mixture. Mix until just combined. Stir in sour cream.
Add the cooled cocoa mixture to the batter and stir until smooth.
Pour batter into the prepared sheet pan and spread evenly. Bake for 30-35 minutes, or until a toothpick inserted into the center comes out clean. Let the cake cool in the pan on a wire rack.
For the frosting, melt butter in a saucepan over medium heat. Stir in sugar, evaporated milk, egg yolks, and salt. Cook, whisking constantly, until the mixture thickens and bubbles (about 7-10 minutes). Remove from heat and stir in vanilla extract.
Stir in shredded coconut and chopped pecans until evenly combined.
Once the cake has cooled completely, spread the frosting generously over the top. Allow the frosting to set for 10 minutes before cutting into squares.