Angel -
When you are given an object as a parameter, the object already has a reference, so you do not need to close the reference. The caller is responsible to release the reference.
If you call a method that returns a different object, the method returns the object with a reference and must be explicitly released using a Close Reference VI.
If you wire a reference thru a VI, the above rules do not change.
LabVIEW does keep track of additional references added to objects while running the VI. Since you are calling the VI using TestStand, LabVIEW does cleanup these references when the VI is unreserved. By default TestStand unreserves the VI when the execution is complete. This would explain why you see the leak cleaned up when the execution goes away.
Scott Richardson
https://testeract.com