Sort and wash beans; place beans in a large saucepan. Cover with water to a depth of 2 inches above beans. Bring to a boil; cover, remove from heat, and let stand for 1 hour. Drain beans, and return to saucepan; add 4 1/4 cups water. Bring to a boil; cover, reduce heat, and simmer, partially covered, 2 hours or until tender.
Heat oil in a large nonstick skillet over medium-high heat until hot. Add onion, and saute 5 minutes. Add garlic, ham, and chopped pepper; saute 5 additional minutes. Add onion mixture to beans in saucepan. Add vinegar and remaining ingredients; stir well. Bring to a boil; cover, reduce heat, and simmer 20 minutes.