To change a balloon from a circle to a divided circle balloon I create the divided circle balloon using the leader and attribute information of the circle balloon and then delete the circle balloon.
If any other balloon(s) use the deleted balloon for the associative origin then these other balloon(s) are marked as "Object for associative origin has been deleted or suppressed".
My problem is how can I identify any balloon(s) that use the balloon I want to delete so that I can
change their associative origin/type?
I was thinking along the same lines as @josch; you would have to query the other objects to see what was associated to the ID symbol of interest (remember that other annotations could also be associated to it such as notes, dimensions, etc). If you have multiple ID symbols to change, you could create a "map" of associativities saved as a dictionary (of IDSymbol, list (of annotation)) to speed up future searches.
Alternatively, before changing the symbol, you could iterate through the ID symbols to see if any are .IsRetained. Check again after making your change. If any become retained due to your edit, they almost assuredly were associated to the old symbol. You could then take action based on this information (undo the change to check the associativity, or something else).
The ID symbol may also be part of an "annotation stack". I'm not sure how this would affect a replacement such as you are doing.