Außerdem sollte \\ nie am Ende eines Absatzes stehen. Genau das passiert aber in der xmp-Datei. Ich vermute, Du hast die früher genommen, weil bei \addcontentsline eben am Ende keine Leerzeile geschrieben wurde. Aber auch dort hättest Du besser \protect\par genommen (zu \protect siehe meine früheren Erklärungen).

Ich glaube auch nicht, dass ich daraus ein Paket machen sollte. Wie gesagt, gehe ich davon aus, dass eines der vielen Pakete aus dem Bereich Aufgaben und Lösungen bereits entsprechende Umgebungen liefert.