It seems that TESTMOD is probably used for conditional assembly of code sections. You must define it somewhere before it is encountered for the first time (perhaps even with a command-line option), with either zero (usually to indicate condition-is-off) or non-zero, but it really depends on the programmer's perception of true or false. Personally, I prefer the more obvious
#ifdef somevar
#else
#endif
variant found in some assemblers so that an undefined symbol clearly relates to unused code, rather than trying to remember which value of an always-defined symbol to use for true or false (e.g., C coders may see no problem with this as it resembles C's convention of 0 being false, anything else being true, but this is not a universal convention, so for one who hasn't messed exclusively with C, using zero/non-zero for false/true usually doesn't feel very natural!).
Regarding the BRCLR errors, don't forget Bit-Test-And-Branch instructions on the HC[S]08 work only in direct addressing mode, and can only check one bit at a time (unlike the HC11's, for example, which can test multiple bits, and in any indexed location). If the registers or variables you're checking with them are not in page zero, you can't use them. Use LDA/BIT #mask/BEQ sequences instead. Without knowing the addresses of the variables you use, I can only assume this is your problem.
Finally, single colons in the end of labels are normally ignored by most assemblers. With some assemblers, they are used for marking global labels (while others use double colon for that), and it all really depends on the particular assembler's syntax. You probably need to read the specific assembler's syntax specification once again.
Hope this helps.