In a medium bowl, combine the streusel ingredients. Using a pastry blender, cut the butter into the dry ingredients until butter is in very small pieces and the mixture is crumbly. Place in the refrigerator until needed.
Make the pie:
Preheat oven to 450 degrees. Place a baking sheet in the oven while it preheats.
Place the sweet potatoes, both sugars, all of the spices, salt, butter, and 3/4 cup of the evaporated milk in a medium saucepan. Cook over low heat for about 5 minutes, whisking until butter and sugar is melted and the mixture is well blended, smooth, and starts to bubble. Remove from heat and set aside to cool slightly.
In a medium bowl, beat together the egg yolks with the remaining evaporated milk and vanilla. Very slowly drizzle 1 cup of the hot sweet potato mixture into the egg mixture, whisking constantly. Pour the now-warmed egg mixture into the pot with the rest of the sweet potato mixture, whisking thoroughly.
Pour pie filling into the unbaked pie crust. (If you are using a 9-inch crust, you will have filling left over.) Top with half of the streusel mixture. Place on the baking sheet in the oven and bake for 10 minutes at 450. After 10 minutes, reduce heat to 325 and bake for 50 minutes more. When there is 30 minutes left, add the remaining streusel to the top of the pie and finish baking until the edges and center are raised and puffed and the center only shakes slightly.
Remove from oven and cool for 1 hour before slicing and serving.
Notes
Check edges of pie after about 20 minutes. If they are browning too quickly, cover the edges with foil for the remaining baking time.Makes 1 9-inch or 10-inch pie