Heat the oven to 400°F. Pierce the sweet potatoes, place on a lined baking sheet and roast for 50 to 60 minutes until fully soft. Let cool for 10 minutes, then split and scoop out the flesh.
Lower the oven to 350°F and butter a 2-quart baking dish. Mash the potato flesh with melted filling butter, milk, filling sugar, orange zest and 1/2 teaspoon salt; let cool until warm rather than hot.
Beat in the eggs until combined and spread the filling in the dish.
Mix pecans, oats, flour, topping sugar and remaining salt. Rub in the cold topping butter until small clumps form, then scatter evenly over the filling.
Bake for 30 to 35 minutes until the center reaches 160°F and the topping is crisp and browned. Rest for 10 minutes before scooping.