Turn your oven broiler on high. Heat a small saucepan over medium heat. Melt the butter, then add the flour and stir with a whisk to form a paste (roux). Cook the rough until you smell a nutty fragrance.
Whisk in the milk and bring to a boil, continuously stirring. This should take about 2-3 minutes. The sauce should be thick enough to coat the back of a spoon. Season with salt and pepper or Pro Seasoning to taste. Set the sauce aside.
Next, heat a skillet or griddle to medium heat. Butter the bread on one side, and spread mustard on the other (mustard is optional as not everyone loves it). Make 4 piles of ham on the skillet and top with cheese. Make sure to save some cheese to top the sandwich with. This will give you a head start to ensure the center of your sandwich is nice and gooey. Heat the ham and cheese until the cheese is melted. Using a spatula, lift the ham and cheese out of the pan and set aside on a plate.
Next, place the buttered side of the bread down in the skillet or griddle. Toast the bread until golden brown and add the ham and melted cheese. Close the sandwiches and remove from heat. Top the sandwiches with the Bechamel sauce and remaining shredded Gruyere. Place sandwiches on a sheet tray or oven safe skillet and broil the top of the sandwich. When you achieve a golden brown bubbly crust, serve.