Having a character for each sign is a really bad idea. You should implement some sort of entity system so that you can add signs and other objects in the world separate from your tilemap. You gotta do it some time, right? Unless you don't plan on expanding your game past "The Adventures of Tinyguy: Rogue Sign-Reader Extreme".
I recommend looking through some general tile engine tutorials as well. Good luck, mang.
Defining your maps in a text file is IMO a good way to create simple maps, or for prototyping.
If you were doing something fit for a gameboy, you might never need anything more than that, and then an entity system for the static bits would be overkill. You don't necessarily have to do it some time, but even if you do, this step is great for learning as well as being easier to debug. It's pretty much WYSIWYG. -t gives you a good feeling of the map, and doesn't take a lot of space, is portable etc.
I suggest that you keep a sign file, or a sign list further down in the same file:
MAP SIZE H,V TILECHARSTILECHARSTILECHARSTILECHARS TILECHARSTILECHARSTILECHARSTILECHARS TILECHARSTILECHARSTILECHARSTILECHARS [6,11] "Welcome home!" [6,12] "We hope you enjoyed your visit!" [7,11] "Happy birthday!" [10,16] "Register Cosmo Today!"And this map coordinates to strings.
You could keep lists of NPCs and monsters too.