Preheat the oven. Set your oven to 375°F (190°C). Lightly grease a 9x13-inch baking dish.
Prep the broccoli. If using fresh broccoli, steam or blanch it for 2–3 minutes until crisp-tender, then drain well. If using frozen, thaw and pat dry. Excess water will thin the sauce, so keep it dry.
Sauté the aromatics. In a medium saucepan over medium heat, melt the butter.
Add the onion and cook 3–4 minutes until soft. Stir in the garlic and cook 30 seconds until fragrant.
Make the roux. Sprinkle in the flour and stir for 1 minute to cook out the raw taste. It should look like a paste.
Build the sauce. Slowly whisk in the chicken broth, then the milk, whisking constantly to avoid lumps.
Simmer 3–4 minutes until slightly thickened and smooth.
Enrich and season. Add the cream cheese and stir until melted. Mix in 1 cup cheddar, all the mozzarella, Dijon (if using), paprika, salt, and pepper. Taste and adjust seasoning.
The sauce should be well seasoned now.
Combine in the dish. In the prepared baking dish, layer the chicken and broccoli. Pour the cheese sauce evenly over the top and gently toss or spread so everything is coated.
Add the topping. In a small bowl, mix breadcrumbs with olive oil and a pinch of salt and pepper. Sprinkle over the casserole.
Top with the remaining 1/2 cup cheddar.
Bake. Bake 20–25 minutes, until the top is golden and the edges are bubbling. If you like extra color, broil for 1–2 minutes at the end. Let it rest 5–10 minutes before serving so it sets slightly.
Garnish and serve. Sprinkle with parsley if you like. Serve with a simple green salad, garlic bread, or rice.