I still don't know what other levels of OU may exist but I do see you look at the fisrt and second OU levels. As long as the OUs you are looking for are unique, regardless of what parents they may have, you could simply AScan() for them.

Double Split() the DN first on on ',DC=' and discard all the DC parts and then on the ',OU=' which will put all your OUs in an array that you AScan().
_________________________
Give a man a fish and he will be back for more. Slap him with a fish and he will go away forever.