For topping: Toss all ingredients together in a mixing bowl until all cubes are coated in butter. Lightly season with salt and pepper. Set aside until ready to use.
Preheat oven to 375°F.
Fill a large pot with water and bring to a boil. Once the water comes to a boil add a generous amount of salt (2½ – 3 tablespoons) and then the pasta.
Boil pasta for 10 to 12 minutes or until al dente, stirring occasionally. Drain pasta and set aside in a large mixing bowl.
Melt butter over medium heat in a medium saucepan. Add garlic and sauté for 30 seconds. Sprinkle flour over butter mixture and whisk together. Allow mixture to cook for 2 to 3 minutes.
Whisk milk into flour mixture and continue to whisk until fully incorporated and no lumps remain. Allow mixture to simmer until thick enough to coat the back of a wooden spoon, 3 to 4 minutes.
Place all shredded and grated cheeses into a mixing bowl and toss together with lemon juice.
Stir cheese into the béchamel sauce and stir until cheese just melts and creates a smooth sauce.. Season with salt and pepper.
Fold cheese sauce into pasta until just combined. Fold in bacon and chives until completely mixed.
Pour macaroni into a buttered 8”x8” baking dish and spread evenly. Sprinkle the top with the buttered cubes of sourdough and bake for 20 to 25 minutes.
Remove from oven and allow macaroni and cheese to cool for about 7 minutes before serving.