Put beans and soaking water in a large saucepan. Bring to a full boil, boil for 2 minutes, then cover, remove from heat and stand for 60 minutes; drain and rinse.
Heat oven to 325°F. Heat oil in a 6-quart oven-safe covered pot over medium heat and cook onion, carrots and celery for 7 minutes, then add garlic for 1 minute.
Add drained beans, broth, bay leaf, savory and pepper. Bring to a simmer, cover tightly and transfer to the oven.
Bake for 1 1/2 hours, then stir gently and check a bean. Continue covered for 30 to 45 minutes until the beans are nearly tender, adding some of the measured hot water if the liquid no longer covers them.
Fold in ham and bake covered for 15 to 20 minutes more until the beans are fully tender and ham reaches 165°F. Add the remaining optional water only if the soup is thicker than you want.
Discard bay leaf, stir in vinegar and taste before adding up to the measured 1/4 teaspoon salt. Rest for 5 minutes and divide among six bowls.