Heat oven to 350° F. Grease a 9 by 13-inch casserole dish. Set aside.
Combine cheeses in a large bowl and toss to combine. Set aside.
For the sauce, melt butter in a large sauce pan. Add flour and cook over medium-low heat for 3 minutes, whisking constantly until mixture turns a pale nutty brown.
Slowly add milk while whisking, taking care as the steam will be very hot. Mix in paprika, cayenne, bay leaf, and onions. Bring to a simmer, stirring occasionally, for 15 minutes.
In the meantime, prepare the breadcrumb topping. Melt 2 tablespoons butter in a medium skillet over medium-low heat. Mix in brown sugar, spices, pepper, and salt, stirring to combine. Carefully stir in vinegar and let some of the liquid evaporate before mixing in the breadcrumbs. Stir for several minutes until the spices coat the breadcrumbs and the mixture is crisp and lightly toasted.
Once the sauce is done simmering, remove the bay leaf. Off heat, puree well sauce with a stick blender. Add about 2/3 of the cheese mixture, stirring until melted. Stir in chicken and pasta. Season with salt and pepper to taste.
Transfer the mixture to the baking dish and top with remaining cheese and bread crumbs. Bake until bubbly, about 30 minutes. Let sit for 5 to 10 minutes before serving.