Step 1
Butterfly each chicken breast by cutting it down the center lengthwise leaving about 1 inch of connective tissue at the other end. Spread open like a book and rub each down with 1/2 teaspoon salt. Let rest for 30 minutes to absorb salt.
Step 2
Cover each breast with plastic wrap and pound thin with a meat mallet until roughly doubled in surface area. Using a very sharp knife or meat slicer cut the ham steak into very thin slices.
Step 3
Spread 1/4 cup Gruyere over each chicken breast then divide 1/4 of the ham between them. Repeat making 2 layers. Fold the chicken over like an omelet enclosing the cheese and ham. Secure the open edges with 4 to 5 toothpicks.
Step 4
Whisk eggs and milk together in a bowl. Combine bread crumbs and Parmesan cheese in a second bowl. Carefully dredge each chicken breast in flour coat with egg wash then dredge in the breading. Transfer to a wire rack and move to freezer for 20 minutes to help the breading adhere to the meat.
Step 5
Preheat the oven to 385 degrees F (195 degrees C). Place chicken in a baking dish.
Step 6
Bake chicken in the preheated oven for 25 minutes then brush each side down with melted butter and flip. Bake for 25 minutes more.
Step 7
Meanwhile make the sauce. Pour milk into a saucepan set over low heat and simmer until steaming about 10 minutes.
Step 8
Melt butter and stir in flour to create a roux. Let the roux cook to burn off the flour taste stirring constantly 4 to 5 minutes. Slowly whisk in hot milk letting the sauce come together before adding more milk until everything is well incorporated. The sauce will still be a little thin. Add Parmesan cheese and nutmeg stirring constantly until cheese in melted evenly into the sauce. Stir in Dijon mustard. Simmer sauce until it is at least thick enough to coat the back of a spoon. Season with salt and pepper.
Step 9
Remove chicken from oven and transfer to plates. Remove toothpicks. Ladle sauce over chicken and serve immediately.