Wenn Du unbedingt darauf bestehst, entgegen dem korrekten Hinweis von Besserwisser die Option bei \documentclass anzugeben, dann musst Du nur korrekt klammern:
%\RequirePackage{filecontents}
\begin{filecontents}{testklasse.cls}
\ProvidesClass{testklasse}[2014/11/03 v0.1 Testklasse]
\LoadClass[a4paper,10pt]{scrartcl}
\RequirePackage{scrbase}
\DefineFamily{keys}
\DefineFamilyMember{keys}
\FamilyStringKey{keys}{nummer}{\nummer}
\FamilyStringKey{keys}{titel}{\titel}
\FamilyProcessOptions{keys}\relax
\newcommand*{\ClassOptions}{\FamilyOptions{keys}}
\renewcommand{\maketitle}{%
\begin{center}%
\textbf{\large{Nr. \nummer\ -- \textit{\titel}}}%
\end{center}%
}
\end{filecontents}
\documentclass[nummer=5,{titel=Titel mit , und =}]{testklasse}
\begin{document}
\maketitle
\end{document}
Das Problem ist nämlich, dass sonst geprüft wird, ob titel={Titel mit , und =} in der normalen Liste der Optionen ist. Das dafür (bereits von LaTeX) verwendete Makro \@in verkraftet aber keine geschweiften Klammern. Das liegt daran, dass dabei mit delimeted arguments gearbeitet wird und das in diesem Fall schief geht. Genau dasselbe Problem gibt es dann noch einmal mit LaTeX's \@removeelement.
Es würde vermutlich auch wenig bringen, wenn \FamilyProcessOptions so geändert würde, dass es geschweifte Klammern verträgt. Das nächste Paket, das das ganz normale \ProcessOptions verwendet, hat dann dasselbe Problem mit den globalen Optionen.