Es extraño, acabo de probar en Delphi 2010 contra una base de datos DB2/400 y funciona perfectamente. Sin embargo sugiero que revises lo siguiente.
- Asegurate de que el origen del campo lookup sea un TClientDataSet o cualquier otro dataset bidireccional. Un TSQLQUery al no ser bidireccional presenta problemas con los campos Lookup.
- Verifica mediante código si se está presentando algún tipo de error haciendo uso de el evento ReconcileError del ClientDataSet.
- haz uso de TSQLMonitor para verificar las sentencias SQL que se están enviando a la base de datos para hacer la actualización.