Sometime ago I actually tried what you are purposing, driving Psi4 from C++, and it did not work too well. Long story short, the way Psi4 is currently setup is that when you call the Psi4 executable, which is in C++, it then calls Python, which then calls C++. Essentially the C++ interface that you may have inferred is there, is written in Python, which is launched from within C++. If you go with psi4.so mentioned above you can remove the top C++ call and instead replace the it with your QMC code, but you will still have to go through the Python interface in the same way the binary does. The other option is to rewrite a lot of infrastructure. The latter option is a sort of duplication of effort because that is essentially what the project mentioned by @loriab does.
One of the key aspects of this project (despite it being now in development for about six months we have yet to agree on a name, hence the sort of mystery) is that the driver will be mirrored both in C++ and Python enabling driving from either language. The former I have found is more natural for high-performance computing. I’m optimistic that a working version of this project is not as far away as @loriab has made it sound (at least in terms of driving Psi4). At the moment, I’m currently using it to write a many-body expansion (break a cluster into monomers, than compute monomer energies, two-body energies, three-body energies, etc.) method, which similar to QMC, is just spinning off a lot of orthogonal electronic structure computations. I am anticipating that it will be in a usable state by the end of the month. If at that time you would be open to collaborating, we would love to work with you to get your QMC code to drive Psi4 through our interface. Depending on how we spin it, there may even be the possibility for some sort of paper detailing the interface, again assuming you are up for it.