The problem that you're running into is that your braces aren't matching correctly. Here's what you have if we rearrange things to show where the braces are:
Oops, there's only two arguments being given to \newenvironment instead of three. ...
You are using "_" outside of math mode, which is an error. Seeing the first "_" LaTeX is automatically put into math mode and keeps it to the very end. Variables in math mode are set in italics, that's what you are seeing.
What you actually want is "Let $C_1$, $C_2$ be two categories".
Also see the error messages of your LaTeX ...
The sansmathfonts package has outline bold italic math fonts based on Computer Modern Sans Serif:
The comments in the package detail the available fonts for each option, for cm that is
% \sfdefault is cmss
% no slanted bold letters
% no slanted bold capital Greeks
so as no bold fonts are declared, \bm can not access them.
If you use px then the package documents
% \sfdefault is pxss (pxfonts.sty)
% slanted bold letters
% slanted bold capital ...