If you want to run something in all directories and all subdirectories of directories and so on, then you should either use a recursive function or something like "find . -type d".
The reason your current loop is failing is because you're cd'ing two subdirectories deep but only jumping back up one directory at the end, which doesn't bring you back to your starting location. The end result is the first cd works, the cd .. brings you back up one of the two directories you went down, the second cd fails because that directory doesn't exist from your current location, the cd .. brings you back to your original location so the third cd works, and so on.
You should be using "cd -" or "cd ../..", but even then you're only going to be looping through all directories that are 2 levels down from your cwd, you won't be looping through the directories that are 1 level down, or 3 levels down, or 4 levels down, etc. Whether or not this is a problem depends on what you're trying to do.
A better solution would be to modify the ~/MKM/mkm script so that it accepts the directory in which it should run as a command line argument, and make sure you can pass in multiples. Then you would simply call: