I would like to create a custom report class (say MyCustomReport) based on the report class, where I can control more precisely the page styles applied throughout the document, so that the document would look something like this:

I tried the fancyhdr package to modify the existing page styles (e.g., plain and empty), but that doesn't give me enough control to apply different styles to different parts of the report (for instance, title vs abstract vs normal chapter vs appendix, etc.)
I also created custom fancypagestyles, but I was unable to apply those in my custom class when for instance \abstract, \chapter, or \appendix are called (I guess my custom page styles get overridden by some \thispagestyle{plain} when they are called). I also want to put as much as possible in MyCustomReport, so that the authors would only need to write a document like this :
\documentclass{MyCustomReport}
\usepackage{lipsum}
\title{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget}
\author{Jack Black and Jim Brown}
\date{May 2024}
\Abstract{\lipsum[1]}
\begin{document}
\chapter{Model}
\lipsum[1]
\section{My first model}
\lipsum[1-3]
\chapter{Results}
\lipsum[1-3]
\chapter{Conclusion}
\lipsum[1]
\appendix
\chapter{The first appendix}
\lipsum[1-3]
\chapter{The second appendix}
\lipsum[1-3]
\end{document}
Is this possible? Here's a MWE for MyCustomReport.cls, although I'm not sure if I'm going in the right direction (I would like the first chapter page to break before its first section, if the first section would land on the same page):
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{MyCustomReport}[2024/05/03 Custom report class]
\LoadClass{report}
\global\let\@abstract\@empty
\newcommand\Abstract[1]{\def\@abstract{#1}}
\RequirePackage[letterpaper, portrait, headheight=0.25in, headsep=0.5in, footskip=0.8in, margin=1in]{geometry}
\RequirePackage{fancyhdr}
\RequirePackage{graphicx}
\graphicspath{{./Images/}}
\RequirePackage{eso-pic}
\RequirePackage{pgfplots}
\RequirePackage{xcolor}
\definecolor{TitleColor}{RGB}{18,81,147}
\definecolor{AbstractColor}{RGB}{0,128,0}
\definecolor{ChapterColor}{RGB}{0,0,128}
\definecolor{AppendixColor}{RGB}{255,102,0}
\RequirePackage{sectsty}
\chapterfont{\color{white}}
\sectionfont{\color{blue}}
\subsectionfont{\color{black}}
\RequirePackage[colorlinks=true,citecolor=blue]{hyperref}
\fancypagestyle{TitlePage}{
\AddToShipoutPictureBG*{\put(0.5in,0.5in){\begin{tikzpicture}
\path [fill = TitleColor] (0.5in,0.5in) rectangle (\dimexpr\paperwidth-0.5in\relax,\dimexpr\paperheight-0.5in\relax);
\end{tikzpicture}}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyfoot{}
}
\fancypagestyle{AbstractPage}{
\AddToShipoutPictureBG*{\put(0.5in,0.5in){\begin{tikzpicture}
\path [fill = AbstractColor] (0.5in,0.5in) rectangle (\dimexpr\paperwidth-0.5in\relax,\dimexpr\paperheight-0.5in\relax);
\end{tikzpicture}}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyfoot{}
}
\fancypagestyle{ChapterPage}{
\AddToShipoutPictureBG*{\put(0.5in,0.5in){\begin{tikzpicture}
\path [fill = ChapterColor] (0.5in,0.5in) rectangle (\dimexpr\paperwidth-0.5in\relax,\dimexpr\paperheight-0.5in\relax);
\end{tikzpicture}}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyfoot{}
}
\fancypagestyle{AppendixPage}{
\AddToShipoutPictureBG*{\put(0.5in,0.5in){\begin{tikzpicture}
\path [fill = AppendixColor] (0.5in,0.5in) rectangle (\dimexpr\paperwidth-0.5in\relax,\dimexpr\paperheight-0.5in\relax);
\end{tikzpicture}}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\fancyfoot{}
}
\renewcommand{\maketitle}{\@maketitle
}
\def\@maketitle{
\thispagestyle{TitlePage}
\raggedright
\noindent{\color{white}\fontsize{32}{40}\selectfont{\@title} \par}
\parskip = 1in
\noindent{\color{white}\fontsize{15}{12}\selectfont{\@author} \par}
\parskip = 8.5pt
\noindent{\color{white}\fontsize{10}{12}\itshape\selectfont{\@date} \par}
\vfill
\newpage
\normalsize
\thispagestyle{AbstractPage}
}
\AtBeginDocument{
\maketitle
\vspace*{\fill}
\color{white}\fontsize{35}{40}\selectfont{Abstract\\}
\vspace{0.75in}
\noindent{\color{white}\fontsize{15}{24}\selectfont{\parskip = 0.25in\@abstract} \par}
\global\let\@abstract\@empty
\global\let\abstract\relax
\newpage
\color{blue}
\normalsize
\thispagestyle{plain}
}