Antes de lidiar con ClientDataSets y/o DataSetProviders, creo que sería bueno que dilucidaras qué es lo que está pasando con tu esquema actual.
Al parecer, haces algo como:
Código Delphi
[-]
LookupComboBox.ListSource := Conexion.Consultar(...);
para cada combo. Pero aquí habría que saber cómo estás generando el objeto que devuelve el método Consultar, ya que, por lo que describes, parece que lo estás reusando, de manera que el usado finalmente es el que se otenga en la última consulta.
// Saludos