For the peach filling: Combine the 1 ½ cups of the diced peaches, sugar, spices, and lemon juice in a saucepan over medium heat. As the mixture is cooking, mash the peaches down a little with a fork or potato masher. Cook until it starts to thicken slightly. Combine the water and cornstarch and stir into the pan. Cook until thick and jammy, then remove from heat and set aside to cool completely.
For the streusel topping: Preheat your oven to 350°F and line a baking sheet with parchment paper. In a medium bowl, combine the flour, both sugars, baking powder, cinnamon, and salt. Whisk to fully combine, then cut in the cold cubed butter until it resembles coarse crumbs.
Pour half of the beaten egg into the flour mixture. Mix just until it is fully combined. If the mixture looks too crumbly and won't stay together when squeezed, sprinkle in the remaining egg and up to 1 ½ teaspoons of water. Spread the mixture out on the prepared baking sheet and bake for 20 to 25 minutes until lightly browned and crumbly. Set aside to cool.
For the cinnamon roll dough: Combine the yeast, warm milk, vanilla extract, and sugar in the bowl of a stand mixer fitted with the hook attachment. Allow to sit for 2 to 5 minutes for the yeast to dissolve. Add in the 2 cups of bread flour and mix to combine. Add in the salt and egg and mix well.
Begin gradually adding in the 2 cups of all-purpose flour, one cup at a time, until the dough begins to pull away from the sides of the bowl. Then, slowly mix in the softened butter, one piece at a time. Continue to knead the dough until it is well-developed and passes the windowpane test (about 8 to 10 minutes). Cover the dough and let it proof in a warm spot until it has doubled in size (about 1 to 2 hours).
For the cinnamon sugar butter: While the dough is proofing, mix together the softened butter, brown sugar, and cinnamon for the cinnamon sugar butter. Set aside.
Assembling the rolls: Line a 9x13-inch baking dish with parchment paper and ensure the oven is set to 350°F. On a lightly floured surface, roll out the dough into a 10×15-inch rectangle. Evenly spread the cinnamon sugar butter over the dough; spread the completely cooled peach jam over the top, then evenly scatter the remaining ½ cup of fresh diced peaches over the jam.
Starting from the long end, roll the dough into a log. Slice into 12 equal-sized rolls and place them in the prepared dish. Cover and allow to proof for 30 to 45 minutes, or until they become puffy (do not let them double in size). Bake the rolls at 350°F for 30 minutes until the edges are golden brown and the peach filling is bubbling. Let them rest for 5 minutes out of the oven.
For the icing: In a small bowl, whisk together the powdered sugar, heavy cream, and vanilla extract until fully combined.
Allow the cinnamon rolls to cool for 5 minutes then spread the icing over the warm cinnamon rolls. Sprinkle over the streusel topping and enjoy!