Sort the beans and rinse them in cold water. Put the beans in a Dutch oven and cover them with 2 inches of water.
Bring to a boil and continue to cook for 2 minutes. Remove from the heat and cover for 1-4 hours, or until the beans are softened.
Drain and rinse the beans, reserving the liquid. Return the beans to the pan; add the broth, 3 cups of water, the ham bone, the bouillon, and the seasonings; bring to a boil.
Lower the heat to low, cover, and leave to simmer for 1 1/2 hours. Meanwhile, sauté the onions, carrots, and celery in oil in a large skillet until soft; add to soup. Cover and continue to cook for 45-60 minutes, or until the beans are cooked.