Put the butter in a saucepan and melt over medium heat. Once it’s almost fully melted, add the milk. Bring mixture to a simmer, then remove from heat and let cool to 125 degrees F. Stir in the vanilla.
Meanwhile, In the bowl of a stand mixer, mix together the yeast, sugar, 2 cups of flour egg, and yolks at low speed until well mixed. Add the salt and warm milk mixture, then add remaining flour ½ cup at a time until you have a soft, slightly sticky dough.
Switch to the dough hook and knead at medium speed (adding more flour if needed) until the dough is smooth and freely clears the sides of the bowl. Scrape the dough into a well-oiled bowl and roll it around so it’s coated with a thin layer of oil. Cover and let rise until doubled in bulk (about 45 minutes with the quick rising yeast).
After the dough has doubled, press it down and turn it out onto a lightly floured work surface. Shape the dough into a 16 by 12 inch rectangle, with long side facing you.
Mix together the filling ingredients and sprinkle the filling evenly over the dough, leaving a ½ inch border at the far edge.
Roll the dough, beginning with the long (16 inch) edge closest to you, and shape into a tight cylinder.
Line two 13x9 inch metal baking pans or line with nonstick foil or parchment paper. Alternatively, you can just grease with a lot of butter.
Cut the rolls into 12 equal pieces and place 6 pieces, spacing about an inch apart, in each pan.
Cover with plastic wrap and place in a warm draft free spot until doubled in bulk (another 45 minutes to an hour with the quick rising yeast).
Preheat oven to 350 degrees and adjust oven rack to the middle position.
Bake the rolls for about 25 minutes or until golden brown.
Remove from oven. Allow the rolls to cool for about 5 minutes, then spread with icing while rolls are still warm.
To make the icing, beat the cream cheese until smooth, then beat in corn syrup, vanilla and sugar. Add cream (or whole milk) until icing is smooth and creamy. Spread icing over rolls while still warm.