Put all the stock ingredients into a stockpot with about a gallon and a half of water. Bring the pot to a light boil and hold it there for two to three hours, uncovered.
When the ham comes easily off the bone, remove the ham and strain the stock. Pick the ham from the bone and reserve.
Rinse the stockpot and wipe dry. Add the olive oil and sauté the celery, onion, and garlic until the onions brown slightly. Add the Worcestershire sauce and a little under two quarts of the strained stock. Add the soaked, drained beans, salt, and Tabasco. Simmer, covered, for two hours, until the beans are tender.
Strain the soup. Puree the solids in a food processor, then add it back to the broth. Shred as much ham as you'd like in your soup and add it. Adjust seasonings and serve hot. Garnish with green onions.