> Set obj=pg.FindAllChildren(NameProperty,ValueProperty,9999999,True)
This line requests search for *all* objects that meet specified criteria starting from the specified root. I hope that it is clear that the higher the root is in the objects hierarchy the 'more generic' search is. At the same time, the higher the root is in the objects hierarchy the worse search performance is. (Just because even if you need first found object and the sought for object is found in the first branch of the objects tree, the search will not stop until it traverses all search tree.)
And the optimal balance between the performance and reusability is a matter of a good code architecture (which, unfortunately, is a rare thing nowadays... :(. And is one of the reasons I love tools by SmartBear).