Dear @phil,
Please use the approach described in Dynamically update Lookup Column
This is a workaround to retrieve an appropriate Lookup Id because when a form loads the lookup field has minimal data (for optimization purposes). After manual selection, the lookup field contains full data including extra fields.
fd.field("Lookup").widget.dataSource.data();
always retrieves full data.