Después de haber leído algunos posteos como los de hacer Refresh sobre el datasource, el que a veces no funciona como comenta vtdeleon y algunos otros comentarios, empece a usar el método heurístico (lease pruebayerror + aversipega) a fin de tratar de resolver esto.
La solución la encontré validando si había una transacción activa en la forma padre y de ser afirmativo, decir que la terminara. El código quedó como sigue.
Código Delphi
[-]
procedure Tfrm_HistoriaClinica.PopulaHeredofamiliares;
begin
lb_Heredofamiliares.Items.Clear;
if dm_Heredofamiliares.ibt_IBTransaction.Active then
dm_Heredofamiliares.ibt_IBTransaction.Commit;
with dm_Heredofamiliares.ibq_IBQuery do
begin
Close;
... etc.
lo que me pareció extraño es que tengo que hacer referencia a la transacción de la forma padre (HistoriaClinica) en lugar de la transaccion de la forma hija (Heredofamiliar) ya que fue con los recursos de esta última con lo que realice la operación sobre la BD e hice la transacción. No se si es que al refererirse a la misma tabla, el problema con el commit sea a nivel sesión de BD y no a nivel de forma.
enfin, lo dejo por si a alguien más le es de utilidad. gracias