The pattern we use is to add a large number of leads to Marketo with SyncLeads using a key of our client's choosing, then sometime later add specific leads to a list. Because ListOperation can only take the "IDNUM", we fetch the Marketo Id using GetMultipleLeads and the key we originally used with SyncLeads.
Previously, we've only supported email, marketo id and salesforce, but now we're looking to add the "Custom" value which some of our clients use already. This was simple enough to do with SyncLeads (ForeignSysType.CUSTOM the way we've already used ForeignSysType.SFDC), but how do I use the value I used in SyncLeads in GetMultipleLeads? None of the LeadKeyRefs seem to match up.
I do not think it is not possible to query GetMultipleLeads with the foreign key. This use case is possible with REST API. You can create a custom field in Marketo. Store foreign key there. Then use Get Multiple Leads REST API to query leads based on that custom field.