Preheat the oven to 350 degrees F. Lightly grease a 9x13 baking pan with cooking spray and set aside.
Add the bacon to a medium saucepan or Dutch oven and place over medium-low heat. Cook until the bacon is crispy and cooked through, about 10-15 minutes. Use a slotted spoon to remove the bacon to a paper towel lined plate and set aside.
Pour off all but 2 tablespoons of bacon grease (if necessary) and add the jalapeños, leeks, salt and pepper. Increase heat to medium and sauté, scraping the brown bits from the bacon on the bottom of the pan and stirring occasionally, until the leeks have softened, about 5 minutes. Add the garlic and cook until fragrant, about 1 minute.
Pour in the heavy cream and half-and-half. Bring to a simmer, then immediately remove from the heat. Add in 1 cup of each cheese (set aside ¼ cup of each cheese for topping) and stir until the cheese is completely melted. Stir in bacon and parsley.
Using a large spoon, add just enough of the cheese sauce to the greased pan to barely cover the bottom. Add the potatoes to the pot with the remaining cheese sauce and gently toss to thoroughly coat. Use a slotted spoon to transfer the potatoes to the greased pan (using a slotted spoon will keep some of the cheese sauce in the pot). Pour the remaining cheese sauce over top of the potatoes.
Cover the baking dish tightly with aluminum foil and bake on the middle rack for 90 minutes. Remove from the oven and sprinkle with the remaining cheese. Bake uncovered for 10-15 minutes. Use a small knife or toothpick to test potatoes for doneness. Switch the oven to broil and cook until the top is golden brown and bubbly, about 1-2 minutes. Remove from the oven.
Let the potatoes stand 15 minutes before serving. Sprinkle with the remaining parsley. Enjoy!