Cook potatoes in a large stock pot over med-high heat, starting in room temperature water bringing up to a boil until fork tender; approximately 15 minutes. Drain and set aside.
While the potatoes are cooking, using a large stockpot or Dutch oven, render the bacon pieces over med-high heat until crispy. Remove the bacon from the pot to drain on a paper towel. Drain off all but 2-3 tablespoons of the bacon fat.
Add the diced onions and celery followed by the salt, black pepper and white pepper to the bacon fat and cook over medium-high heat, stirring frequently until the onions are translucent and the celery has softened; approximately 5-7 minutes.
Reduce heat to medium and add the chicken stock and milk to the pot. Heat until mixture is steaming hot, but not boiling. Stir the mixture frequently to prevent burning.
While the milk and chicken stock are heating in the stock pot, melt the butter in a small saucepan until it starts to bubble. Slowly whisk in the flour to make a roux. Cook the roux over medium heat until the color is golden and the mixture smells like toasted, buttered bread; approximately 3-4 minutes.
Slowly add the roux, whisking constantly, into the milk mixture. Allow the mixture to cook, but not boil, for another 4-5 minutes until the mixture thickens to cover the back of a wooden spoon.
Reduce heat to low and gently stir the potatoes and bacon. Cook on low for another 30 minutes for the flavors to meld together.
Serve with chopped green onions, shredded cheese and crusty bread.