Stick with it!
I'm so desperate I'm considering booting windows for the first time in months to see if its any different there! 
err, debugging it in windows 7 32bit so I would say no need to boot in windows.
For me evething works even an uncached lookup just doesn't show cell contents but does drop down and edit. Its only as soon as I enable look up cache
I'm seeing this with 64bit Laz 1.0 and 1.1 with fpc 2.6
on Ubuntu 12.04 using MySQL 5.1 connector or postgres connector....
I have a demo application that works with out a glitch with firebird and my schema.
At first I thought that something is wrong with the database and the message you get isn't related to the field at all, so I spend time making sure every field has the correct data type, that no constrain was bothering the process, etc. but with no lack.
After I gave up on setting up a correct debug environment yesterday I copied everything (DB, SQLDB, etc) in the applications directory and started debugging today. Didn't take much to find the following backward line.
procedure TField.RefreshLookupList;
var
tmpActive: Boolean;
begin
if not Assigned(FLookupDataSet) or (Length(FLookupKeyfields) = 0)
or (Length(FLookupresultField) = 0) or (Length(FKeyFields) = 0) then
Exit;
tmpActive := FLookupDataSet.Active;
try
FLookupDataSet.Active := True;
FFields.CheckFieldNames(FLookupKeyfields);//<-- this one makes no sense.
..........
end;FFields is the fields collection that the field belongs to. it is set automatically when you call Dataset.fields.add(Myfield);
From a first look it should always link to the fields collection that this field is part of, aka PeopleQuery in this occasion.
It makes no sense to try to find any kind of lookup fields in that collection. The problem is that my demo works and this makes no sense at all. I made sure that by changing the above line to
FLookupDataSet.Fields.CheckFieldNames(FLookupKeyfields);
everything works as expected.
The search goes on. I need to find out why my demo works now.