01 - Preheat oven to 375°F (190°C). Lightly grease a 9x13-inch baking dish with nonstick spray or softened butter.
02 - In a medium saucepan, melt unsalted butter over medium heat. Add finely diced onion and minced garlic; cook for 2 to 3 minutes, stirring occasionally, until softened and fragrant.
03 - Sprinkle all-purpose flour over the sautéed mixture and whisk continuously for 1 minute to form a blonde roux. Gradually pour in the whole milk, whisking constantly until smooth. Allow to simmer for 3 to 4 minutes, stirring regularly, until thickened.
04 - Remove saucepan from heat. Stir in Dijon mustard, kosher salt, black pepper, and smoked paprika until incorporated.
05 - Arrange half of the diced chicken in the prepared dish. Spread the diced ham evenly over the chicken. Sprinkle half of the shredded Swiss cheese over the ham. Repeat with remaining chicken and Swiss cheese.
06 - Evenly pour the prepared sauce over the casserole layers. In a small mixing bowl, combine Panko breadcrumbs and grated Parmesan. Distribute the breadcrumb mixture evenly across the surface.
07 - Place casserole uncovered in the oven and bake for 30 to 35 minutes, or until topping is golden and casserole is bubbling around the edges.
08 - Remove casserole from oven and allow to rest for 5 minutes before serving to aid slicing and temperature control.