Here are the templates I use to make my worksheets and quizzes for my discussions.
First, I would like to point out that I try to make things as simple as possible, the goal is to never have to think about manual spacing or adjusting headers or titles. Additionally, it is uglier to have no style (.sty) file, but the header is not complicated, so it is amendable, and is only in medium length.
To use the worksheets, just add a <TITLE> to the \title{<TITLE>} command.
Similarly for quizzes to do the same for \title, \date, \duration, and
\points. These should be in the document itself.
Then the flow for the problems should follow 2 rules, never manually space (use
\vfills) and to have 1 global enumerate environment for all main problems,
and then layers of enumerates for subproblems.
This is an example that uses these ideas:
\begin{document}
\title{MATH 9999 - Worksheet Awesome}
\begin{enumerate}
\item This is an awesome sample problem.
\vfill
\vfill
\item This is a cool setup!
\begin{enumerate}
\item Easy difficulty part.
\vfill
\item Medium difficulty part.
\vfill
\item Hard difficulty part.
\vfill
\newpage
\item Really had part that is better on the next page.
\vfill
\end{enumerate}
\end{enumerate}
\end{document}
Note that I have double \vfills for a problem that needed more space for
scratch work. Also note that there is a \newpage in the nested enumerate,
this is great as the subproblem enumeration is tracked, and we can adjust the
amount scratch work space!
Additionally, I recommend using a formatter like latexindent, you then should have to think about formatting as little possible.