Into the bowl of stand mixer, pour 2 cups of flour, yeast and the zest of 1 orange. Use a fork or whisk to evenly disperse the ingredients throughout the flour.
In a small saucepan over medium heat, warm milk, sugar, 1/3 cup of butter, and salt until it reaches 125°F. Add this to the bowl of flour. Using the dough hook attachment, mix it on low speed for 15-20 seconds.
Add the 2 eggs. Beat on low for 30 seconds, scrape down the sides and beat on medium for about 3 minutes.
Add the remaining 2 cups of flour, 1 cup at time. Beat just until each cup is incorporated and scrape down the sides in between. The dough should pull away from the sides of the bowl, but still be a little sticky.
Dust a work surface with the remaining 2 Tbsp of flour and turn your dough out. Knead by hand for 3 to 5 minutes, incorporating all the flour.
Shape it into a ball and place it in a lightly greased bowl. Turn it over once to coat, cover and set in a warm, dry spot for about 1 hour. It will double in size.
Meanwhile, make the cranberry filling by combining cranberries, both sugars, spices and orange juice in a small saucepan over medium heat. Bring it to a boil, stirring often. Cook it for 15 minutes or until it has thickened into a jammy consistency. Set it aside to cool.
Punch down the dough and divide it in half. Lightly dust a work surface and rolling pin with flour. Roll one half of the dough into a rectangle approximately 12" x 8".
Spread half the cranberry filling all over the dough. Starting with a long edge, roll the dough into a cylinder. Using floss or a sharp serrated knife, cut the dough in 1" pieces. You should end up with 9 or 10 good pieces. Repeat the process with the rest of the dough and filling.
Place the rolls into (2) 9" cake pans, lightly greased. Cover them and allow to rest for another 30-45 minutes. They will expand to fill the pan.
Preheat the oven to 350°F. After the rolls have rested, baked them for 20 minutes. Check them for doneness. The dough around the edges of the pan may turn a very light golden brown. If they are still pale, bake them for up to 5 minutes longer. Remove them to cooling racks.
Prepare the icing by combining what's left of the stick of butter with the cream cheese. Beat them with a hand mixer or with a whisk until it is smooth. Add 1 cup of confectioner's sugar and mix. Add the vanilla, 2 Tbsp of orange juice and remaining cup of confectioner's sugar. Mix until smooth.
Pour half the icing over each of the pans and use an offset spatula or back of a spoon to spread the icing over the rolls.
Dig in now, or allow the icing to set a bit. The rolls can be stored at room temperature in an air tight container for 2-3 days, or in the fridge for up to one week.