Custom Attribute type of multi-valued lookup (using dynamic lookup) does not persist when we SAVE.
When the user select more than one value and click on Add, only one item is added.
The root cause of the issue is that NSQL is incorrect. In the lookup query the customer is trying to get the investment id from "odf_pk" value. When customer clicks on any project instance, "odf_pk" parameter will not be passed in the URL. If customer clicks on the SAVE button "odf_pk" will not be passed in the URL.
You need to correct the NSQL. Customer should use "id" value instead of "odf_pk" to resolve this issue. Updated the Lookup query in such a way that get the investment id (@WHERE:PARAM:USER_DEF:INTEGER:INV_ID@) from user defined value in the attribute property page. In attribute property page use "Object ID" in lookup parameter mapping section.