In a large pot, bring water to a boil with a pinch of salt. Add the linguine and cook according to package instructions (usually 9-11 minutes) until al dente. Drain and set aside.
In a large pan over medium heat, cook the chopped bacon until crispy. This should take about 6-8 minutes. Remove the bacon from the pan, leaving some of the bacon grease in the pan.
Using the same pan with bacon grease, sauté the minced garlic and chopped onion until the onion becomes soft and translucent, about 3 minutes.
Add the diced ham and cook for another 2 minutes. Add the sliced mushrooms and cook for another 2-3 minutes until the mushrooms are soft and slightly golden.
Lower the heat to medium and add the evaporated milk, all-purpose cream, and cream of mushroom to the pan. Stir everything together until well combined.
Let the sauce simmer for 5-7 minutes, stirring occasionally to thicken the mixture.
If you're using the quick-melt cheese, stir it in now. Continue stirring until the cheese is fully melted and incorporated into the sauce.
Season with salt and pepper to taste.
Add the cooked bacon and linguine to the sauce. Toss everything together, ensuring the pasta is evenly coated with the creamy mixture.
Transfer to serving plates and garnish with freshly chopped parsley and Parmesan cheese if desired.