Preheat to 400°F. Butter a large, deep casserole dish.
Make the roux: In a stainless steel skillet, melt 5 tbsp butter with 2 tbsp fresh sage. Once fully melted and sizzling, whisk in 5 tbsp flour and cook for about a minute to cook out the raw flour taste.
Build the sauce base: Slowly whisk in 2 cups whole milk and 1 cup chicken stock, a little at a time, whisking constantly to keep it smooth. Continue whisking and cooking until the sauce thickens.
Melt in the cheese: Turn off the heat. For best results, let the sauce reduce until nicely thickened before adding cheese; this helps it melt in smoothly. Add the sharp cheddar and Gruyere (reserving ½ cup cheddar for the topping), a little at a time, whisking until fully melted and smooth.
Season the sauce: With the heat off, whisk in 1 tsp Dijon mustard, 1 tsp lemon juice, ½ tsp fine salt, ½ tsp pepper, and ¼ tsp nutmeg. Taste and adjust seasoning, then set aside to cool slightly.
Layer the casserole: Spread 1 lb frozen broccoli evenly across the bottom of the buttered casserole dish. Scatter 2 cups cooked rice evenly over the broccoli, breaking up any clumps.
Add chicken and sauce: Layer the 3 cups shredded chicken over the rice, then pour the mornay sauce over everything. Gently mix just until combined; no need to overmix.