Preheat oven to 350°F. Grease a 9x9 inch baking pan and line the bottom with parchment paper, leaving overhang on two sides.
Peel peaches with a vegetable peeler, remove pits, and dice into small bite-sized pieces. Set aside.
In a medium bowl, stir together brown sugar, flour, pecans, cinnamon, and salt. Pour in melted butter and stir with a fork until coarse crumbs form. Refrigerate while making batter.
In a separate bowl, whisk together flour, baking powder, baking soda, and salt. Set aside.
Beat softened butter and granulated sugar with a hand mixer for 2-3 minutes until pale and fluffy. Scrape down the bowl as needed.
Add eggs one at a time, beating well after each addition. Mix in vanilla extract until fully incorporated.
Beat in sour cream on low speed just until smooth and creamy. Do not overmix.
Add flour mixture in two additions, mixing on low speed just until no dry streaks remain. Batter will be thick.
Gently fold diced peaches into the batter with a rubber spatula until evenly distributed, being careful not to crush them.
Transfer batter to prepared pan and spread evenly into corners with a spatula.
Remove crumb topping from refrigerator and sprinkle evenly over the batter, covering completely.
Bake for 42-48 minutes until golden brown and a toothpick inserted in center comes out clean or with a few moist crumbs. Tent with foil if topping browns too quickly.
Cool in pan for at least 20 minutes on a wire rack. Use parchment overhang to lift out before slicing.