Wie @saputello in seinem Kommentar bereits schrieb, kann man alle Arten von `verbatim`-Umgebungen nicht gefahrlos im Argument eines anderen Befehls verwenden. Schon ein einfaches:
\documentclass{article}
\newcommand{\Ausgabe}[1]{#1}
\begin{document}
\Ausgabe{
\begin{verbatim}
% Dies ist ein Beispiellisting
\Test
\end{verbatim}
}
\end{document}
erzeugt nicht das gewünschte Ergebnis, sondern die Fehlermeldung:
> `Runaway argument?
\Test \end {verbatim} ^^M\end{document}^^M^^M\documentclass{article}\ETC.
! File ended while scanning use of \@xverbatim.`
Das gilt bei Verwendung von Umgebungen wie `lstlisting` oder eben `tcblisting` umso mehr.
Nun bietet aber das Paket `tcolorbox` auch einen Befehl, um eine externe Datei direkt einzulesen. Definiert man sich nun eine Abwandlung von `xsim_input:nnn`, bei der eben dieser Befehl an Stelle von `file_input:n` verwendet wird, so funktioniert es schon einmal ohne Fehler:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{xsim}
\usepackage[most]{tcolorbox}
\ExplSyntaxOn
\cs_new_protected:Npn \xsim_tcbinput:nnn #1#2#3
{
\group_begin:
\__xsim_set_file_signature:nnn {#1} {#2} {#3}
\tcbinputlisting { listing~only, listing~file = \l__xsim_file_path_and_name_tl }
\group_end:
}
\NewDocumentCommand \GetBodyTCB {m m m}
{
\xsim_tcbinput:nnn { #1 } { #2 } { #3 }
}
\ExplSyntaxOff
\begin{document}
\begin{exercise}[subtitle={Ein schöner Titel}]
Fragetext
\end{exercise}
\begin{solution}
Antworttext
\end{solution}
\newpage
\section*{Quelltext}
\let\ListingList\empty
\ForEachUsedExerciseByID{%
\GetBodyTCB{#1}{#2}{exercise}
}
\end{document}
Die Formatierung ist sicher noch verbesserungsfähig:
[![Quelltextseite mit Listing][1]][1]
[1]: http://https://texwelt.de/wissen/upfiles/test_20180812_123856.png