Я не думаю, что вы найдете отдельное приложение, которое исправит ваш определенный выбор неправильно маркированных кодировок. Наличие смеси cp1252, UTF-16 и GB-18030 довольно необычно, и я не думаю, что существующее программное обеспечение сможет решить эту проблему автоматически.
Поэтому я бы скачал Mutagen и написал собственный скрипт на Python, чтобы автоматизировать ваши собственные решения о том, как исправить неизвестные кодировки. Например:
musicroot= ur'C:\music\wonky'
tryencodings= 'gb18030', 'cp1252'
import os
import mutagen.id3
def findMP3s(path):
    for child in os.listdir(path):
        child= os.path.join(path, child)
        if os.path.isdir(child):
            for mp3 in findMP3s(child):
                yield mp3
        elif child.lower().endswith(u'.mp3'):
            yield child
for path in findMP3s(musicroot):
    id3= mutagen.id3.ID3(path)
    for key, value in id3.items():
        if value.encoding!=3 and isinstance(getattr(value, 'text', [None])[0], unicode):
            if value.encoding==0:
                bytes= '\n'.join(value.text).encode('iso-8859-1')
                for encoding in tryencodings:
                    try:
                        bytes.decode(encoding)
                    except UnicodeError:
                        pass
                    else:
                        break
                else:
                    raise ValueError('None of the tryencodings work for %r key %r' % (path, key))
                for i in range(len(value.text)):
                    value.text[i]= value.text[i].encode('iso-8859-1').decode(encoding)
            value.encoding= 3
    id3.save()
Приведенный выше скрипт делает несколько предположений:
- Только теги, помеченные как находящиеся в кодировке 0, являются неправильными. (Якобы кодирование 0 - это ISO-8859-1, но на практике это часто кодовая страница Windows по умолчанию.)  
- Если тег помечен как кодировка UTF-8 или UTF-16, он считается правильным и просто преобразуется в UTF-8, если его еще нет. Лично я раньше не видел ID3, помеченных как UTF (кодировки 1-3) по ошибке. К счастью, кодирование 0 легко восстановить в исходные байты, поскольку ISO-8859-1 является прямым отображением порядковых значений байтов 1: 1. 
Когда встречается тег кодирования 0, сценарий пытается сначала преобразовать его в GB18030, а затем, если он недопустим, возвращается к кодовой странице 1252. Однобайтовые кодировки, такие как cp1252, будут иметь тенденцию совпадать с большинством байтовых последовательностей, поэтому лучше всего поместить их в конец списка кодировок, чтобы попробовать.
Если у вас есть другие кодировки, такие как cp1251 Cyrillic, или множество имен файлов cp1252 с несколькими символами ударения в строке, которые ошибочно принимают за GB18030, вам понадобится более умный алгоритм угадывания. Может быть, посмотрите на имя файла, чтобы угадать, какие символы могут присутствовать?