Yes but did you change variables to _root.num and _root.c?
Code:
tellTarget (_root.num) {
	gotoAndStop (_root.c);
	duplicateMovieClip (_root.basecity, _root.city[c][num], c);
	_root.city[c][num]._x = _root[num]._x + 20;
	_root.city[c][num]._y = _root[num]._y + 20;
}
after you use tell target(_root.num), you cant just write
duplicateMovieClip (_root.basecity, _root.city[c][num], c);
because Flash expects to find those num and c variables now inside _root.num mc. I wont write whole code again for you, only this line:
duplicateMovieClip (_root.basecity, _root.city[_root.c][_root.num], _root.c);
but its affecting almost many lines.