Preheat the oven to 350 degrees F. Spray the baking dish with cooking spray.
In a medium saucepan, melt the butter over medium heat. Whisk in the flour and cook, stirring, for 2 minutes. Add in the milk, whisking constantly. Allow the mixture to cook, stirring frequently, until the sauce begins to thicken, about 8 minutes. Turn off the heat and stir in the mustard, garlic, and 1/4 cup shredded cheese.
Meanwhile, cut off the woody stems of the endives and make a deep slit into them lengthwise, not quite cutting them in half. Place a small slice of cheese in the center of each endive. Season with salt and pepper and roll each endive in a slice of ham. Place the wrapped endives, seam-side down, in the prepared baking dish.
Stir the sauce to blend the cheese into the mixture and pour over the endives. Cover with foil and cook for 25 minutes. Uncover, and add the remaining 1/4 cup shredded cheese. Raise the heat to 400 degrees F and cook for 10 minutes more. Let cool a few minutes before serving. Sprinkle with parsley to garnish.
Cook's Note: If Belgian endive is unavailable, substitute small wedges of cabbage and increase the cooking time by 10 minutes.