Preheat oven to 350°F (177°C). Grease a 2-quart baking dish.
Whisk the flour, baking powder, baking soda, and salt together. Set aside.
Using a handheld or stand mixer fitted with a paddle attachment, beat the butter and sugar together on high speed until creamy and combined, about 2 minutes. On medium speed, add 1 egg at a time, beating well after each addition. Beat in the vanilla extract and sour cream. Scrape down the sides and up the bottom of the bowl with a rubber spatula and beat again as needed to combine.
With the mixer on low speed, pour in the dry ingredients and milk/orange juice and beat until smooth and combined. Do not overmix. The batter will be thick. Fold in the cranberries and pecans. Spread into prepared pan. Set aside.
Make the crumb topping: Combine the brown sugar, flour, and cinnamon together in a medium bowl. Cut in the cold butter with a pastry blender or a fork (or even with your hands) until the mixture is crumbly. Mix in the pecans. Sprinkle evenly over batter.
Bake for 40-55 minutes. Let cook for about 10 minutes and dig in!