IMHO shell is a poor option to emulate a shell in emacs.
you could try something like
both will behave better with your colors definitions.
the "strange" things that you see is what emacs shell does with your color definitions from .bashrc or .tcshrc or ...
this is not so simple to solve.
i suggest a look at www.emacswiki.org
if you want to solve your problem fast, the solution is change to "ansi-term". Everything will run smooth.
ps. i see now that is an old post. i just gave the answer to clean the 0 replies threads.