Wenn in Deiner .cls nur das steht, dann hast Du ganz andere Probleme: \normalsize ist nicht definiert, es gibt keinen Counter namens chapter, chaptermark ist unbekannt. Wenn das nicht Deine ganze Datei ist, dann solltest Du uns im Sinne eines
Minimalbeispiel etwas mehr verraten.
Ulrike hat ja schon erklärt, dass \addcontentsline im LaTeX-Kern definiert ist, also eigentlich gar nicht undefiniert sein kann. Und sieht man sich die Fehlermeldung genauer an, sieht man, dass nicht \addcontentsline sondern \thepage undefiniert ist. Du müsstest in Deiner .cls-Datei irgendwo
oder \pagenumbering{Roman} oder was immer Dein Herz begehrt haben, denn nur dann weiß TeX, wie es mit Seitenzahlen umgehen soll.
Die Definition von \chapter sieht teilweise recht abenteuerlich aus. Häufig müssen in TeX Zeilenenden mit % geschützt werden, um ungewollte Leerzeichen zu verhindern. Siehe
https://texwelt.de/wissen/fragen/16/was ... der-zeilen Die Font-Encoding würde ich nicht mitten im Dokument einfach grundlos umstellen. Warum schreibst Du \fonseries{b} und nicht \bfseries? Warum nicht \huge (oder so) statt \fontsize{21pt}{21pt} (wo der Durchschuss wahrscheinlich zu klein ist, siehe z.B.
https://texwelt.de/wissen/fragen/11577/ ... instellung bei TeXWelt)? Ferner kann das so definierte \chapter weder mit dem optionalen kurzen Kapitelnamen für das Inhaltsverzeichnis noch mit dem Stern für umnummerierte Ausgaben umgehen. Das mag für den Privatgebrauch alles egal sein, könnte aber problematisch werden, wenn andere die Klasse auch verwenden wollen und sie erwarten, dass diese Standardidiome funktionieren (und mit andere meine ich auch Dich in zwei Monaten).
Wer eine eigene Klasse schreiben möchte, sollte sich den [d]cslguide[/d] durchgelesen haben und für alle Fälle ruhig [d]source2e[/d] offen haben, um nachzuprüfen, was wie definiert ist. Es kommt natürlich immer auf das Level an, auf dem man seine eigene .cls bastelt. Wenn man einfach nur ein leichtes Kleid über eine Standardklasse, eine KOMA-Klasse oder memoir zieht, dann ist tiefe Kenntnis der Interna nicht notwendig, aber wenn man alles selbst machen möchte, dann sollte man schon etwas mehr über die Interna wissen. Es kann auch sinnvoll sein, denn Quellcode einer ähnlichen Klasse offen zu haben, um zu sehen, wie dort die Dinge definiert sind.