Preheat your oven to 350°F. Grease a 9x13-inch baking dish.
In a large pot, bring water to a boil and add the sweet potatoes. Cook for about 15-20 minutes, or until tender. Drain and return to the pot.
Add brown sugar, milk, melted butter, vanilla extract, cinnamon, nutmeg, and salt to the sweet potatoes. Mash until smooth and well combined. Spread the mixture evenly in the prepared baking dish.
In a medium bowl, combine chopped pecans, flour, granulated sugar, and softened butter. Mix until crumbly. Sprinkle the pecan mixture evenly over the sweet potato layer.
Bake in the preheated oven for 25-30 minutes, or until the topping is golden brown and the casserole is heated through. Let it cool for 10 minutes before serving.