It appears the ‘offending’ line is
../eigen-git-mirror\Eigen/src/Core/GeneralProduct.h:247:66: note: in instantiation of member function 'Eigen::internal::get_factor<std::complex<stan::math::var>, double>::run' requested here
RhsScalar compatibleAlpha = get_factor<ResScalar,RhsScalar>::run(actualAlpha);
This just converts a factor will get used in the matrix product from a type that is compatible with the result type (which would be complex) into a type that can be stored and kept along with the rhs type, which is double. If I had to guess from reading the lines above line 247, it is a form of preconditioning by reading something from both the left and right hand sides first, and that preconditioning factor is then made type compatible with the Rhs.
Thus, I suggest trying to define Eigen::internal::getFactor<complex,double>::run so that it pulls out the “sign” and magnitude of its argument (a complex number) into a double, and see what happens. I will try that now.