It’s highly likely to be caused by the limitation with Link Instances I explained here:
Unfortunately there are few options for the time being:
Option 1: Copy all elements so they are live in the model (@john_pierson covers this further in the thread above)
Option 2: Edit the source code of Tools.GetSurrondingElements and transform/translate the element Outlines and pass them into the filter (the node uses a filter from the Revit API which requires the element Outline to get any elements whos Oultines also intersect)
Option 3: Await the release of BimorphNodes v2.2 (in a few weeks) which includes BoundingBox.GetElementsIntersect node - it performs the same action as Tools.GetSurrondingElements but it will include a solution to the translation/transformation problems caused by elements derived from linked instances.
i did something similar with sprinklers a while back. Try some ray bounces to get intersecting.
or create vector from location of family to intersect above or below . geometry intersect nodes and others related needed.
The node that resolves your original issue is BoundingBox.GetElementsIntersects (it performs the same function as Tool.GetSurroundingElements with a number of improvements). It correctly supports elements from links regardless of any transforms to the RevitLinkInstance from where it derived. The number of RevitLinkInstances supported is unlimited and I’ve also ensured there is virtually no loss in performance…in fact, the new infrastructure which enables this support has resulted in a 25% speed increased with the Element.Intersects nodes! Full details will be forthcoming when I make the release announcement.