DTM is full of document.write calls which is OK if you're using DTM in a supported way (i.e. Header embed synchronously loaded in the HEAD, and pageBottom() synchronously called just before the closing BODY tag). There are certain expectations that DTM has regarding when it is being invoked within the lifecycle of a page being rendered. Your implementation does not support DTM's expectations.
Launch, however, supports async embed and does not require the pageBottom call.
If you absolutely can't move to Launch, I'd suggest looking at the contents of each of these scripts and seeing why they cannot be loaded after DOM ready. If they are "sequential JS" try changing to "non-sequential JS".