In a large pot over medium heat, melt the butter. Add the onion and cook until translucent, about 3-4 minutes.
Stir in the garlic and cook for 1 minute.
Sprinkle the flour over the onions and cook, stirring constantly, for 2 minutes.
Gradually whisk in the chicken broth until smooth.
Bring to a simmer and cook until slightly thickened, about 5 minutes.
Add the shredded chicken and diced ham, stirring to combine.
Reduce heat to low and stir in the half-and-half and Dijon mustard.
Gradually add the Swiss cheese, stirring until melted and smooth.
Season with salt and pepper to taste.
Serve hot, garnished with fresh parsley.