но я никак не могу с ним работать, я пытался пропускать его через функции нормализации, но ни в какую
А не надо бездумно совать свою строку какому-то левому коду и ожидать что он всё за тебя сделает.
Надо проанализировать что ты получаешь и только потом начинать что-то делать.
В данном случае видно две очевидные проблемы:
1. В строке отсутствуют все закрывающие символы, которые должны быть в конце строки - кавычки, фигурные скобки, квадратные скобки - всё потеряли. В первую очередь надо найти того кто это написал, ткнуть его носом и громко и чётко произнести: "кто накодил? Кто накодил, а?", после чего посадить его исправлять серверную часть.
2. Внутренний объект зачем-то закодирован в json второй раз. Тут уже можно не кричать, а дать лёгкого добродушного пинка backend-разработчику, но таким образом чтоб после этого его тело двинулось в сторону клавиатуры, используя которую, он исправит и этот косяк.
const weirdString = fetch() // здесь получаешь свою странную и корявую строку
const jsonEncoded = weirdString + '\\"}]}]"}' // для примера я вручную посчитал всё закрывающее барахло, но, возможно что для этого надо будет написать отдельную функцию. Ну, тут сам справишься, я думаю
const decodedOnce = JSON.parse(jsonEncoded) // раскодируем первый раз
const decodedTwice = JSON.parse(decodedOnce['21']); // раскодируем второй раз внутренний объект.