Without seeing your full code its hard to determine.
Annotations are not very useful when assigned generically to an object.
The will perfectly overlap and make it appear like an annotation is not displayed when in fact its just under a more recently created annotation.
As an example, if you assign 2 annotations to an object using your code you would only see the second annotation. The first would be hidden underneath. So if you are going to use the default position by assigning it to an object then you can only provide one annotation per object.
I find that putting empties around the object and then assigning the annotations to those empties will provide the desired results but without seeing your projects this is only a guess.