Das Problem ist, dass Du zu früh wieder auf den Seitenstil `scrheadings` umschaltest. Die Umschaltung gilt ab sofort für die aktuelle Seite. Da die erste Seite noch nicht beendet ist, wirkt es also ab der ersten Seite. Es fehlt schlicht ein Seitenumbruch vor der Umschaltung:
\documentclass{scrreprt}
\usepackage{blindtext}
\usepackage{scrlayer-scrpage}
\chead[plain-Stil-Kopfzeile]{scrheading-Stil-Kopfzeile}
\cfoot[plain-Stil-Fusszeile]{scrheading-Stil-Fusszeile - Seite \thepage}
\begin{document}
% === Deckblatt
%\thispagestyle{plain.scrheadings} % <-Funktioniert
\pagestyle{plain.scrheadings} % <- Funktioniert
Das ist das Deckblatt
\cleardoubleoddpage% <- nächste (rechte) Seite
% === Bericht
\pagestyle{scrheadings} % <- Funktioniert
\tableofcontents
\Blinddocument
\appendix
\Blinddocument
\end{document}\end{document}
Die erste Seite des Inhaltsverzeichnisses ist dabei natürlich nicht im Seitenstil `scrheadings`, sondern im zugehörigen *plain*-Seitenstil, `plain.scrheadings`, weil das Inhaltsverzeichnis ein nicht nummeriertes Kapitel ist und damit auf der ersten Seite der Seitenstil `\chapterpagestyle` verwendet wird. Alle weiteren Seiten des Inhaltsverzeichnisses wären natürlich im Seitenstil `scrheadings`.