A lookup is showing instances of an object as long as they have not been used as part of a lookup attribute in an object.
However, after setting the value for the lookup attribute, the value disappears from both the available results (expected) and the attribute value (not expected). When checking the database, the value is correctly saved for the lookup attribute.
The lookup code does not contain (or is not correct) a BROWSE-ONLY construct.
Configure Lookups > BROWSE-ONLY Construct for Dynamic Query Lookups