Preheat your oven to 375°F and grease a 9x13 inch baking dish. Cook the penne pasta according to package directions until al dente, then drain thoroughly.
Melt the butter in a large Dutch oven or pot over medium heat. Add the chopped onion and cook for 4-5 minutes until softened, then add the minced garlic and cook for 1 more minute until fragrant.
Whisk in the flour and cook for 1 minute to form a roux. Slowly pour in the milk, chicken broth, and heavy cream while whisking constantly until the sauce is smooth and begins to thicken, about 5-7 minutes.
Remove the pot from heat and stir in the salt, pepper, cheddar cheese, mozzarella cheese, and half of the Parmesan cheese until the sauce is smooth and creamy. Fold in the drained pasta and shredded chicken until everything is evenly coated.
Transfer the mixture to the prepared baking dish. In a small bowl, combine the panko breadcrumbs, remaining Parmesan cheese, and parsley. Sprinkle this topping evenly over the casserole.
Bake uncovered for 25-30 minutes, or until the sauce is bubbly around the edges and the topping is golden brown. Let the casserole rest for 10 minutes before serving to allow it to set.