Preheat the oven to 350. Cook the macaroni according to the package directions. Drain and set aside.
While the pasta is cooking, melt 3 tablespoons of butter in a large skillet over medium heat. Whisk in the flour, and cook 2-3 minutes, or until slightly golden and bubbly.
Slowly add the milk, followed by the half and half, whisking constantly to prevent lumps. Let the mixture bubble and thicken, then slowly add the chicken broth while continuing to whisk. Let cook 3-5 minutes, until thickened. Stir in the salt, pepper, and cream cheese, and cook until the cream cheese has melted.
Remove from heat and stir in the cheddar, colby jack, mozzarella, and 2 tablespoons of parmesan cheese. Whisk until the cheese has melted. Stir the cooked pasta into the cheese sauce, then add the crumbled bacon, reserving about two tablespoons. Pour the pasta mixture into an 8 x 8 baking dish.
Melt the remaining 1 tablespoon of butter in a small bowl, and whisk together the melted butter, bread crumbs, and remaining 1 tablespoon of parmesan cheese. Sprinkle the bread crumb mixture over the pasta, and top with the remaining bacon pieces.
Bake 15 minutes, or until the bread crumbs are toasted and the cheese sauce is bubbly. Serve hot.