If I understand your first question correctly, you can only use two tilesets at any given time...in the case of outdoor maps, the nature set and the secondary set. So if you want towns with tiles from Celadon City, Cinnabar Island, and Fuschia City at the same time, you need to modify one of the existing tilesets with tiles from those three places.
Roaming Pokemon are generally the results of the "special" command, and you can't really call one at will (that runs away, at least) without ASM. Setting variable 0x4031 to either 0x0, 0x1, or 0x2 and calling special 0x129 will make the roamer either Entei, Raikou, or Suicune, respectively. There's no way to make more then one roam at any given time, without ASM.