Preheat the oven to 350°F. Lightly grease a 3-4 quart baking dish and set aside.
Cook the pasta according to package directions, leaving it slightly al dente. Strain and rinse with cold water. Set aside.
Meanwhile, bring 4-6 cups of water to a boil over high heat. Add the cubed butternut squash, and cook for 15-18 minutes, or until a fork can be easily inserted into the cubes. Strain and set aside.
While the pasta is cooking, melt 6 tablespoons of butter in a medium Dutch oven over medium-high heat. Add shallots, garlic, salt, pepper, and paprika and cook for 4-6 minutes, or until the shallots and garlic are fragrant and slightly translucent.
Turn the heat down to low, and slowly whisk in the cornstarch or arrowroot. Continue whisking until the mixture bubbles and thickens. VERY slowly whisk in about 1 cup of milk. Whisk until the mixture is smooth, and then add another cup of milk, whisking again until the mixture is smooth. Slowly add in the remaining milk and vegetable broth until the mixture is smooth. Stir in the cooked butternut squash.
Allow the milk mixture to come to a simmer, and remove from the heat. Whisk in the cheddar cheese and Gruyere cheese until melted. Stir in the spinach. Slowly add the pasta to the mixture, and fold in until well combined. Spread the pasta mixture into the prepared baking dish.
In a small microwave-safe bowl, melt the remaining 2 tablespoons of butter by placing in the microwave for 20-30 seconds. Stir in the Parmesan cheese and gluten free panko breadcrumbs. Sprinkle the panko mixture evenly over the pasta mixture.
Place the pasta mixture in the oven, and bake for 15-18 minutes, or until the mixture is bubbly and golden brown.