In a large saucepan combine the black beans with lightly salted water to cover, bring the water to a boil, and simmer the beans for 1 hour or until they are tender but still hold their shape.
While beans are cooking, in a large saucepan combine the onions with salted water to cover, bring the water to a boil, and drain the onions immediately. In a small bowl combine the onions wih the vinegar.
In a large skillet heat the oil over moderate heat until it is hot but not smoking, add the ham, the annatto powder, the garlic, cumin and the chipotle and cook the mixture, stirring, for 3 minutes.
Add the well drained black beans and the onions with the vinegar to the ham mixture, stirring, for 3 minutes. Tranfer it to a shallow serving dish. (A shallow dish allows the liquid to be absorbed by the beans.) Let the mixture cool, stirring occasionally.
Garnish the bean mixture with the chopped hard boiled eggs, chopped black olives, coriander leaves and green onions. Serve at room temperature.