Place navy beans into a large pot and cover with several inches of cold water. Bring to a boil, reduce heat to low, and simmer for 5 minutes. Remove pot from heat, cover, and let stand for 1 hour; drain and rinse beans.
Use a small piece of kitchen twine to tie parsley, thyme sprigs, and bay leaf into a small bundle. Place soaked beans, herb bundle, ham hocks, carrot, onion, and garlic into a large soup pot or Dutch oven; add 8 cups cold water. Bring to a boil, reduce heat to low, and simmer until beans and ham hocks are tender, about 1 ½ hours.
Turn off heat; remove ham hocks and let cool. When they are cool enough to handle, remove meat from the bones; discard bones, fat, and skin. Chop ham into small cubes. Remove and discard herb bundle.
Transfer about 3 cups cooked beans along with some cooking liquid into a blender; puree beans. Pour pureed beans back into soup; add ham and bring back to a simmer over medium heat. Season with salt and black pepper.
