Sort and wash beans; place in a large ovenproof Dutch oven. Cover with water to 2 inches above beans, and bring to a boil. Cook 2 minutes. Remove from heat; cover and let stand 1 hour.
Drain beans; return to Dutch oven. Add 8 cups water and onion; bring to a boil. Cover, reduce heat, and simmer 2 hours or until beans are tender.
Preheat oven to 350°.
Drain bean mixture; return to Dutch oven. Add barbecue sauce and remaining ingredients; stir well. Cover and bake at 350° for 1 hour.