...
Nun kenn ich bereits, dass man im WP HTML-Elemente wie folgt schreibt:
...
Da Du die HTML-Elemente bereits richtig maskierst, wird da auch (zunächst) nichts mit Wordpress-Sanitize entfernt. Es ist ja kein HTML. 
Die Sachen stehen also richtig so wie eingegeben in der Datenbank.
Das Problem entsteht bei der Ausgabe der Beschreibung im Bearbeitungsformular. Dort werden die Sachen nicht nochmal maskiert und so erscheinen sie dann als HTML-Tag und werden beim nächsten Speichern doch entfernt. Mit einem kleinen Action-Hook, wie formateins bereits andeutete, kann man das aber beheben:
function my_post_tag_pre_edit_form( $tag, $taxonomy ) {
if( $tag->description ) {
// Nachbildung der esc_attr-Funktion, aber mit $double_encode = true
$safe_text = wp_check_invalid_utf8( $tag->description );
$safe_text = _wp_specialchars( $safe_text, ENT_QUOTES, false, true );
$tag->description = apply_filters( 'attribute_escape', $safe_text, $tag->description );
}
}
add_action( 'post_tag_pre_edit_form', 'my_post_tag_pre_edit_form', 10, 2 );
Alles anzeigen
Diesen Code kannst Du z.B. in die functions.php Deines Themes übernehmen.
Nachtrag: Wieso wird der PHP-Code in dem Code-Fenster umgebrochen?
Gruß
Ingo