Five Character ASCII Map
Python 2, 375 361 359 357 355 353 350 347 bytes



e=enumerate
C=set('12345')
def f(s):
 s=[map(ord,l)for l in s]
 for i,v in e(s):
&#9;for j,w in e(v):
&#9; if{w}-C:
&#9;&#9;F,N=g([],s,i,j,w)
&#9;&#9;for y,x in F:s[y][x]=min(C-N)
 return s
def g(m,s,i,j,c):
 n={s[i][j]}
 if(n^{c}or(i,j)in m)&lt;1:
&#9;m+=(i,j),
&#9;for x,y in(0,1),(0,-1),(1,0),(-1,0):
&#9; if len(s)&gt;i+x&gt;-1&lt;j+y&lt;len(s[0]):m,N=g(m,s,i+x,j+y,c);n|=N
 return m,n


Try it online!

Takes input as a list of strings, and returns a list of lists

f takes the map input and colors it, g returns all connected characters and the set of their neighbors, to the area can be colored with a distinct color.