Preheat oven to 350 degrees F.
In a large mixing bowl, cream the shortening, butter, and sugar until light and fluffy on medium speed; add egg yolks 1 at a time, beating until all the yellow disappears. Add the vanilla. Sift together the flour, baking soda and salt. Add alternately with the buttermilk to the creamed mixture beginning and ending with the flour.
In a small bowl, beat the egg whites on high speed until stiff peaks form. Fold into cake batter.
Fill standard paper-lined muffin cups 3/4 full. Bake for 20 to 25 minutes or until toothpick inserted in center comes out clean. Let cool in pan for 10 minutes. Transfer cupcakes to wire rack that has been placed over a baking sheet to cool.
While cupcakes are still warm, stir together the evaporated milk, sweetened condensed milk, and the coconut milk. Using a meat injector needle, inject each cupcake in several different spots with about 1/2 to 3/4-ounce of the mixture. Or, poke several holes in the top of each of the cupcakes with a 1/4-inch wooden skewer. Pour the milk mixture over each cupcake while they are still warm, filling each hole. Refrigerate for 2 hours or overnight before icing.
For the Buttercream:
Preheat oven to 425 degrees F. To make the dulce de leche, pour the sweetened condensed milk into a glass pie plate and cover with foil. Place in a larger roasting pan where pie plate can sit flat. Pour hot water into the roasting pan to a depth of about halfway up the pie plate. Place in oven and bake for 1 hour 15 minutes. Remove from oven and let cool. Stir until smooth.
Place egg yolks in a medium mixing bowl. Stir the sugar, cornstarch, and salt together in a small, heavy saucepan. Whisk in the water first, then the dulce de leche and bring to a boil over medium heat. Boil for 1 minute, whisking constantly. Remove from heat. Gradually whisk the dulce de leche mixture into the 2 egg yolks. Stir in the vanilla. Strain through a wire mesh strainer into a small bowl and set aside to cool completely.
Beat the butter on high speed in a large mixing bowl until light and fluffy. Beat in the cooled dulce de leche mixture. Beat in the 1 cup powdered sugar until smooth and spreadable.
Frost each cupcake with a generous amount of dulce de leche buttercream. Refrigerate any remaining buttercream for another use. Sprinkle each cupcake with toasted coconut.