To patch several different versions of your files or directories, you just need to supply more than one start state for GenPatch. So the simple command:
> GenPatch OLD_DIR1 OLD_DIR2 OLD_DIR3 OLD_DIR4 NEW_DIR OLD2NEW
will create a patch file to update any or mixtures of all those OLD_DIRs to NEW_DIR. The logic behind this is simple. The last parameter is the filename for the patch, the one before it is the destination and all those before are sources. Even in this case, GenPatch will auto-detect best matches for files in NEW_DIR to patch from.
Even more, GenPatch will rearrange your start states for the best order to give minimum results, so that
> GenPatch OLD_DIR3 OLD_DIR1 OLD_DIR4 OLD_DIR2 NEW_DIR OLD2NEW
does exactly the same thing and you need not think about what order to choose. GenPatch does this for you.