In a large bowl, cream butter and sugar until light and fluffy. Add eggs, one at a time, beating well after each addition. Beat in orange juice and peel. Combine the flour, baking powder and salt; add to the creamed mixture alternately with milk, beating well after each addition.
Transfer to two greased and floured 9-in. round baking pans. Bake at 350° for 20-25 minutes or until a toothpick inserted near the center comes out clean. Cool for 10 minutes before removing from pans to wire racks to cool completely.
For filling, in a small saucepan, combine sugar and cornstarch. Stir in orange juice and water until smooth. Bring to a boil; cook and stir for 1 minute or until thickened. Remove from the heat.
Stir a small amount of hot mixture into egg yolks; return all to the pan, stirring constantly. Bring to a gentle boil; cook and stir 1 minute longer. Remove from the heat; gently stir in the lemon juice, orange peel and salt. Cool to room temperature without stirring. Refrigerate for 1 hour.
For syrup, in a small saucepan, bring the sugar, water and orange juice to a boil. Reduce heat; simmer, uncovered, for 10 minutes or until reduced to about 1/2 cup. Remove from the heat; stir in extract. Cool.
For frosting, in a large bowl, beat butter until light and fluffy. Add the remaining ingredients; beat until smooth.
Cut each cake horizontally into two layers. Place bottom layer on a serving plate; brush with 2 tablespoons syrup and spread with 1/3 cup filling. Repeat layers twice. Top with remaining cake layer; brush with remaining syrup. Frost top and sides of cake. Yield: 16 servings.