I don't have any references handy, but there is an old algorithm called SIMPLEX OPTIMIZATION that might do the trick for you, if you don't mind waiting a while for it to run. Look it up in textbooks no more recent than fifteen years ago. Maybe older. Or try the internet. (Be aware that any internet search on SIMPLEX will find SIMPLEX Corp. as a maker of labor punch-clocks. So specify & filter your search carefully.)
The key to an exact solution is to partially differentiate the equation with respect to each independent variable, generate several differential equations, re-integrate them (writing the integrals as sums) and then solve for each of your C-sub-nm values as a problem of multiple equations in multiple unknowns.
To be thorough, you need one more variable in your mix...
c123*x1*x2*x3 - the three-way interaction case. You only had listed the uni-factor and bi-factor cases. You should also, for mathematical completeness, test for the tri-factor case. Otherwise you'll never know if it contributes.
Now, I'm going to bet you don't want to go that far, so I'll make a quick-and-dirty suggestion for you as a simpler pre-screening process that might give you a usable, if not perfect, answer. Or will at least let you know how far you have to go.
You have alluded to having a lot of data. This helps a LOT. Organize your data in such a way that you can isolate various factors. Like, find all cases where x2 and x3 are the same across multiple samples, then run the linear regression for the set of samples having variation of x1 only. Then do the same for cases where x1 and x3 are the same, then ... and so on. Maybe you can break it down into several sub-isolations and compute the coefficients for each.
Now, go back using the isolated coefficients. Temporarily ASSUME that the 2-way and 3-way interaction coefficients are zero. Compute the residuals (variances) between your observed results and the results you would compute using only the uni-factor coefficients.
If your residual/variance is small enough, your assumption was valid and your problem is solved. If not, then you know you have to do it the precise but terribly ugly way.