01 - Preheat oven to 375°F (190°C). Lightly grease a 9x13-inch baking dish to prevent sticking.
02 - In a saucepan set over medium heat, melt butter until foaming. Add diced onion and minced garlic. Sweat for 2 to 3 minutes until fragrant and softened.
03 - Whisk in flour and cook for 1 minute to form a roux. Gradually add whole milk, whisking continuously to eliminate lumps. Simmer for 3 to 4 minutes until slightly thickened.
04 - Incorporate Dijon mustard, kosher salt, black pepper, and smoked paprika into the sauce. Remove saucepan from heat and set aside.
05 - Arrange half of the chicken evenly in the prepared baking dish. Distribute all the diced ham over the chicken. Top with half of the shredded Swiss cheese. Repeat with remaining chicken and Swiss cheese.
06 - Pour the warm sauce evenly over the layered ingredients, ensuring complete coverage.
07 - In a mixing bowl, combine Panko breadcrumbs with grated Parmesan cheese. Sprinkle the mixture evenly over the top of the casserole.
08 - Transfer baking dish to the center of the oven. Bake uncovered for 30 to 35 minutes, until the topping is golden brown and the casserole is bubbling at the edges.
09 - Allow casserole to rest for 5 minutes before portioning. Serve warm.