The main problem is that we use a misc field of type string and a map representing the misc field.
Before we build the BibTeX string we add the tags, urls, … to the misc fields map. While building the BibTeX we are parsing the misc string and overriding the map with the parsed map from the misc string. This also overrides all added fields.
There is already a new syncMiscFields() method, but the best solution would be to synchronise the string field and the map after each modification (setMisc(), addMiscField(), removeMiscField()).