The banners are defined in the ruby source code, in msf/lib/msf/ui/banner.rb.
They're simple Ruby strings, delimited usually by single quotes or %Q{/} if formatting placeholders are used. Between these strings, there's just a comma. Just add one to the array, they are chosen by random (at the end of the file).
You should adhere to Ruby string rules (don't put ' in there if you use them as delimiters, for example). Ruby apparently has some unicode issues, but the Ruby docs will probably tell you more about this.
Metasploit banners support the colors and formatting (bold, underline) defined in msf/lib/rex/ui/text/color.rb — basically the regular 16 or so terminal colors.