Unfortunately, it is not possible to create lookup where you have a Custom Field Type as a target field.
Basic reflector exploration leads to the following code:
if (field.Type == SPFieldType.Counter || field.Type == SPFieldType.Text || (field.Type == SPFieldType.Number || field.Type == SPFieldType.DateTime) || (field.Type == SPFieldType.Computed && ((SPFieldComputed) field).EnableLookup || field.Type == SPFieldType.Calculated && ((SPFieldCalculated) field).OutputType == SPFieldType.Text))
// ...
Thus, you can use only the following field types as a target for a lookup field:
- Counter (usually ID field)
- Text (Single line of text)
- Number
- DateTime
- Computed (only if SPFieldComputed.EnableLookups is set to true)
- Calculated (only if it's Output type is equal to Text)
And even using the SharePoint object model, most likely, you will get an exception if you try to create Lookup field with target field of the "forbidden" type.