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.
The BROWSE-ONLY will make the condition apply only when selecting (browsing) new values, but not when displaying current existing values.
An example of using the BROWSE-ONLY construct:
AND IS_ACTIVE = 1
Configure Lookups > BROWSE-ONLY Construct for Dynamic Query Lookups