Preheat oven to 350°F. Line an 8x8-inch baking pan with parchment paper, leaving overhang on two sides.
In a stand mixer with paddle attachment, cream butter and both sugars on medium speed until light and fluffy, about 3 minutes. Scrape down bowl sides.
Add egg and vanilla extract, mixing until fully combined. Scrape bowl again.
In separate bowl, whisk together flour, baking powder, cinnamon, and salt. Add dry ingredients to butter mixture and mix on low just until dough pulls away from bowl sides. Do not overmix.
Remove approximately 2 cups of dough and set aside. Press remaining dough evenly into prepared pan, using your hands or the flat bottom of a measuring cup to smooth it into corners.
Bake crust for 15 minutes until edges are lightly golden. Remove from oven and let cool slightly.
While crust bakes, prepare filling: In large bowl, combine cranberries, sugar, cornstarch, orange zest, orange juice, and vanilla. Toss until berries are evenly coated.
Pour cranberry mixture over warm pre-baked crust, spreading evenly.
Break reserved dough into flat, irregular pieces and scatter over cranberry filling, leaving gaps for filling to show through.
Bake for 45 minutes, covering loosely with aluminum foil during last 10-15 minutes to prevent over-browning. Bars are done when cranberry filling bubbles thickly and crumble topping is deep golden brown.
Remove from oven and cool completely in pan on wire rack, at least 3 hours or overnight.
For glaze: Whisk together powdered sugar, milk, and vanilla until smooth. Adjust consistency with more milk or sugar as needed. Drizzle over cooled bars. Let glaze set 10 minutes before slicing.
Use parchment overhang to lift bars from pan. Cut into 16 squares with sharp knife, wiping blade clean between cuts.