Either soak beans overnight, or parboil, then soak them one hour, in one quart water.
Place beans in pot with soaking water, and one more quart. Bring to a boil, then lower heat to a very slow simmer.
Chop bacon, put it in a heavy, cold fry pan. Place pan over very low heat, and let bacon render out the fat - half an hour or more, over the lowest possible heat.
Chop a large onion, add to the bacon, and stir. Dice celery, and add it, stir. Continue to let it cook over very low heat, to allow onion to soften, not brown.
Add whole peeled garlic cloves, chopped carrot, and herbs to the pot of beans. Continue to cook at a very low simmer.
After half an hour or so, mix all contents of frying pan - bacon and bacon fat, onion, and celery - into the pot of beans. Add chicken and ham. Continue cooking over very low heat.
When beans are fully cooked (but not falling apart) remove from heat, let cool slightly (if time permits) to let the flavor meld. Remove any tough bits and twigs from the herbs.
Return to heat, add cabbage, and salt to taste.
Once cabbage is cooked, serve.