In saucepan or microwave safe dish, heat milk and butter until warm (120° – 130°F).
In the bowl of a stand mixer, using the paddle attachment, combine 2 cups flour, sugar, yeast, and salt.
Add warm milk mixture to flour mixture. Blend at low speed until moistened. Add eggs; beat 3 minutes at medium speed.
Switch to the dough hook and mix in the remaining flour a little at a time, to make a soft, slightly sticky dough, add more or less flour as needed. Knead the dough for 5 minutes. Place in greased bowl, turning to grease top. Cover; let rise in warm place until double, about 45 minutes.
Prepare filling: Add sugar with the lemon and orange zests to a small bowl; mix to combine. Set aside.
Punch down the dough and let it rest 5 minutes. On a lightly floured surface, roll the dough into a 16x12-inch rectangle. Spread 2 tablespoons butter evenly over the dough with a rubber spatula or your fingers. Sprinkle 1/2 cup of the citrus-sugar mixture evenly over the butter; reserve remaining mixture for later. Sprinkle cranberries evenly over the sugar. Starting with the long end, roll the dough into a log, and cut it into 12 slices.
Place each piece, cut edges up, 1 inch apart on a parchment lined baking sheet. Cover with plastic wrap and let rise until double, about 30 minutes.
Preheat oven to 350°F.
Prepare topping: Combine cream cheese, sugar, orange juice, and egg yolk; beat at medium speed of a mixer until well-blended.
Make a slight indentation in the center of each sweet roll. Fill the center of each roll with cream cheese topping. Sprinkle remaining citrus sugar over the tops of the sweet rolls.
Bake about 20 minutes until golden brown. Transfer to a wire rack and let cool on the pan for 10 to 15 minutes.
Prepare glaze: Combine powdered sugar and lemon juice. Drizzle over rolls.