there are various lattice Boltzmann models for multiphase flows, which ground on different assumptions and behave completely different. E.g. the color gradient model, the free-energy model, the pseudopotenial model, different phase field-based models, (and more, all of them lattice Boltzmann models). Thus, to be able to help, you have to be a little more specific.
thank you for informing about the model you are using. Could it be possible to have some more details about the case you are trying to simulate and the simulation setup?
okay, to use the CS-EOS in the pseudopotential model, you have to use a modified potential function in which the paramter G appears in the denominator in a square root expression. In this case, G can be picked arbitrarily, only its sign is used to ensure that the radicand of this expression is positive. So this could be a reason for complex numbers. Have you tried switching the sign of G?
Some more information about this procedure and some problems that are connected to it can be found in the publication
Khajepor, Sorush; Wen, John; Chen, Baixin: Multipseudopotential interaction: A solution for thermodynamic inconsistency in pseudopotential lattice Boltzmann models. PRE 91, 023301 (2015).
together with the paper previously suggested let me address you to another interesting, though older work. I personally implemented this model in my code.
Determination of the pseudopotential gradient in multiphase lattice