Preheat oven to 375°F (190°C). Grease a 13x9-inch baking dish if not using an oven-safe skillet. Pat chicken dry and season with salt, pepper, garlic powder, and onion powder.
Boil salted water and cook penne 1-2 minutes less than al dente. Reserve 1/2 cup pasta water, then drain and toss with a drizzle of oil.
Heat olive oil in a large oven-safe skillet over medium-high heat. Sear chicken in a single layer for 3-4 minutes per side until golden and cooked through. Transfer to a plate.
Reduce heat to medium and cook diced ham in the same skillet for 2-3 minutes until lightly browned. Remove and set aside with the chicken.
Melt 3 tablespoons butter in the skillet. Cook onion for 3-4 minutes until soft, then add garlic for 30-60 seconds. Whisk in flour and cook for 1 minute.
Slowly whisk in chicken broth until smooth, then add heavy cream. Simmer gently, then stir in cream cheese until melted. Add 1.5 cups Swiss cheese, Dijon mustard, and thyme. Season with salt and pepper.
Return chicken and ham to the skillet, then fold in the cooked pasta until fully coated. Transfer to a baking dish if needed.
In a small skillet, melt 2 tablespoons butter over medium heat. Add panko and toast, stirring frequently, for 2-3 minutes until golden. Stir in Parmesan.
Top the pasta with remaining 1/2 cup Swiss cheese, then scatter the buttered panko evenly over the top. Bake uncovered for 18-22 minutes until bubbly and golden.
Let rest for 5 minutes before serving. Garnish with fresh parsley and enjoy.