01 - Preheat the oven to 375°F. Lightly grease a 9x13-inch casserole dish with butter or cooking spray.
02 - In a large saucepan over medium heat, melt 2 tablespoons of the butter. Whisk in the flour and cook for 1 minute until the mixture bubbles without browning.
03 - Gradually whisk in the milk, stirring constantly to prevent lumps. Continue cooking for 2 to 3 minutes until the sauce thickens.
04 - Incorporate the Dijon mustard, garlic powder, onion powder, salt, and pepper. Let simmer for 1 minute to blend flavors.
05 - Remove the saucepan from heat. Stir in 1 cup of Swiss cheese and all the Parmesan cheese until the mixture is smooth and thoroughly combined.
06 - Spread the diced chicken evenly in the prepared casserole dish, then distribute the diced ham over the top.
07 - Pour the cheese sauce evenly over the chicken and ham layers. Sprinkle the remaining 1 cup of Swiss cheese on top.
08 - In a medium bowl, combine the fresh breadcrumbs with the melted butter, mixing until the crumbs are evenly coated.
09 - Evenly sprinkle the buttered breadcrumb mixture over the surface of the casserole.
10 - Bake uncovered for 30 to 35 minutes or until the topping is golden brown and the filling is bubbling.
11 - Allow the dish to rest for 5 minutes before serving. Optionally, garnish with chopped fresh parsley.