Preheat the oven to 375 degrees.
In a large dutch oven or 5-quart braiser, add bacon and cook until crispy. Set aside and crumble. Remove most of the pan drippings, leaving behind two tablespoons.
Over medium heat, add the butter and let it melt. Sauté onions and garlic until softened, about 5 minutes. Sprinkle over the flour and stir for 1 minute. Slowly add the milk and cream in increments, stirring as you go. Stir in the roasted garlic base, seasonings, and thyme.
Add in the cream cheese and whisk until it melts into the sauce.
Bring the mixture to a low boil then remove from the heat and add half of each cheese, and stir until it melts into the sauce. Spread a thin layer of sauce evenly into the bottom of a 3-quart greased casserole dish.
Create stacks of thinly sliced potatoes and lay them in the pan on their sides. Repeat to create rows of potatoes. Pour over the remaining sauce, gently separating the stacks to work it in between the slices.
Place uncovered in the oven for 40 minutes or until potatoes are nearly fork-tender. Remove from the oven and top with remaining cheese and bacon. Cook for another 20 minutes or until potatoes are fork-tender and the top is golden brown.
Use a folded paper towel to tap the surface of the casserole to remove any oil that is sitting on top. Sprinkle over the chives and allow the potatoes to sit for 10 minutes to allow the sauce to thicken again before serving.