You're adding the text elements to the map's graphics container. Your code that deletes the elements is looping through the page layout's graphics container. The map and the page layout are both graphics containers and contain their own set of graphic elements.
A balloon callout isn't a type of graphic element so you can't loop through the elements looking for it. A callout is a text background object, which is a property of a text element that uses a formatted text symbol. In order to determine if a graphic element has a callout you first need to determine whether or not it implements ITextElement. If it does, then you need to check to see if the type of symbol is IFormattedTextSymbol. If it is, then you need to see if the background object is set and if so if it is IBalloonCallout. Or if you're just interested in deleting all text elements then just check the element type and delete it if it's ITextElement.
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.