In this particular case the problem is a typical one: You can't pass verbatim content as an argument to another macro. This is indeed the case with using environ, since content is accumulated in the macro \BODY for processing later.
From the looks of your minimal example, it seems like you're after printing verbatim content using a specific colour (say red). For this I'd suggest defining a new verbatim environment with this specific quality/attribute. As such, fancyvrb can come in handy. Here's a MWE that illustrates this concept (taken, virtually verbatim, from the fancyvrb documentation (section 4.1.3 Customization of formatting, p 5 and 4.2.4 Personalized environments, p 18)):

\documentclass{article} \usepackage{fancyvrb,xcolor}% http://ctan.org/pkg/{fancyvrb,xcolor} \DefineVerbatimEnvironment% {MyVerbatim}{Verbatim} {formatcom=\color{red}} \begin{document} \begin{MyVerbatim} First verbatim line. Second verbatim line. \end{MyVerbatim} \end{document}
verbatimcontent as a macro argument, which requires special treatment. Perhaps you could elaborate on what you're after really.listings:\lstnewenvironment{vred}{<something before the verbatim part>}{<something after>}. This command also allows to add arguments the same way\newenvironmentdoes.