Dice the onion, slice the celery, and mince the garlic. Peel and cube the potatoes into 1/2-inch pieces and keep them in cold water until needed. Cut the kernels off the fresh corn (or thaw and drain frozen corn), pick through the crab for shells, and chop the chives and parsley.
Place the chopped bacon in a cold Dutch oven over medium heat and cook for 6 to 8 minutes until crisp, stirring occasionally. Transfer the bacon to a paper towel-lined plate with a slotted spoon, leaving about 2 tablespoons of fat in the pot.
Add the butter to the bacon fat and melt over medium heat. Add the onion and celery and cook for 5 to 6 minutes until soft and translucent, then stir in the garlic and cook for 30 seconds until fragrant.
Sprinkle the flour evenly over the vegetables and stir constantly for 1 to 2 minutes to cook off the raw flour taste. Keep the heat at medium and do not let the flour brown.
Slowly pour in the chicken broth about 1 cup at a time, stirring well after each addition to prevent lumps, and scrape up any browned bits. Add the drained potatoes, Old Bay, bay leaf, and thyme, then bring to a gentle boil over medium-high heat.
Reduce the heat to medium-low, partially cover the pot, and simmer for 12 to 15 minutes, stirring occasionally, until the potatoes are fork-tender but still hold their shape.
Stir in the corn and simmer uncovered for about 5 minutes for fresh corn or 3 minutes for frozen, until tender and bright. For a thicker chowder, pulse an immersion blender 3 or 4 times or mash a few potatoes against the side of the pot.
Turn the heat to low and stir in the heavy cream and whole milk, warming gently without boiling for about 3 minutes. Gently fold in the crab meat with a wooden spoon and heat for 3 to 5 minutes until warmed through, then remove the bay leaf.
Stir in the parsley and 2 tablespoons of chives, then season with salt and pepper to taste. Ladle into warm bowls and top each serving with crispy bacon, extra chives, and a tiny pinch of Old Bay.