If I understand correctly, you have a lookup column in one list that is pointed to a list that no longer exists, correct?
I believe you can fix this using PowerShell, but you have to manually update the SchemaXml property for the lookup column.
Get the lists (assuming they are on different sites):
$targetWeb = Get-SPWeb http://sitecollection/site1/
$sourceWeb = Get-SPWeb http://sitecollection/site2/
$targetList = $targetWeb.Lists.item("Target List Name")
$sourceList = $sourceWeb.Lists.item("Source List Name")
Get the source list ID
$sourceListId = $sourceList.Id
Get the Lookup field on the target list.
$LookupField = $targetList.Fields["LookUpFieldName"]
Update the LookupField LookupField & LookupWebId properties
$lookupField.LookupWebId = $sourceList.ParentWeb.Id
$LookupField.LookupField = $sourceList.Fields['SourceFieldName'].InternalName
At this point, we need to update the field schema with the ID of the new Source list. I use Notepad for simplicity. Export the schema and the source list ID:
$LookupField.SchemaXml > D:\Temp\Schema.txt
$sourceListId > D:\Temp\SourceListId.txt
Find the old list GUID in the schema file and replace it with the new list GUID (make sure to preserve the curly braces).
In Powershell, import the updated Schema block and update the LookupField
$schemaNew = Get-Content D:\Temp\Schema.txt
$LookupField.SchemaXml = $schemaNew
I'm not sure how this will affect old lookup values that were in the target list before it was disconnected from the source list. But, at least in my experimental case, they seem to be unaffected because nothing else changed besides the ID of the source list.
Partial credit goes to George Norberg for his answer to the below post:
Getting lookup values from another site in the same site collection