Wash and sort beans, removing debris or bad beans. Soak in a large pot covered by 1 – 1.5 inches of water overnight, or at least 6 hours.
Bring pot to a boil, reduce heat, cover and simmer until beans are tender, about 2 hours. Remove the beans and reserve liquid.
Meanwhile, preheat the oven to 325 degrees. Combine the molasses, mustard, sugar, salt and pepper, ketchup and Worcestershire sauce in a saucepan and heat to a boil. Set aside.
Layer beans in a ceramic casserole or bean pot with the onion and the bacon or salt pork. Pour sauce over beans and add enough of the reserved liquid to cover the beans. Cover casserole with a lid or foil and roast for at least 2 hours, and up to 4 hours. Check dish at least twice, adding reserved liquid as needed to keep moist. Taste and adjust.
For a crusty top finish, remove the lid for the last 20-30 minutes of the roasting time, allowing the beans to glaze.