Problem parameters
x2=sym(44.68);y2=sym(-27.26);z2=sym(-24.34);
x3=-4.72;y3=-24.4;z3=-27.21;
xCOM=2.53;yCOM=1.1;zCOM=-4.47;
r21 = [x1 - x2; y1 - y2; z1 - z2];
r23 = [x3 - x2; y3 - y2; z3 - z2];
r24 = [x4 - x2; y4 - y2; z4 - z2];
r2COM = [xCOM - x2; yCOM - y2; zCOM - z2];
If the objective is to find the static equilibrium of the rigid body then the contact forces have to satisfy the force and moment balance equations. Combining all four contact forces into a single 12x1 vector we have
A = [repmat(eye(3),1,4); ...
sym(vcross(r21)),sym(vcross(r22)),sym(vcross(r23)),sym(vcross(r24))];
b = [-W;-sym(vcross(r2COM))*W];
where the first three rows [A,b] are the force balance equations and the second three rows are the moment balance equations around contact point-2.
We have six equations in 12 unknowns, and the solution space is parameterized by a 12-d vector w
with all possible solutions given by
F = pinv(A)*b + (eye(12) - pinv(A)*A)*w;
Verify that this parametric solution satisfies the equation
A*F - b
ans =

In the question, it is assumed that two contact forces are known a priori
If these forces are valid at equilibrium, we should be able to find the corresponding values of w, but solve fails to do so, which, if correct, indicates that F1 and F2 as given are not a valid pair of contact forces for which the body can be in static equilibrium. sol = solve([eye(6),zeros(6)]*F == [F1;F2],w)
sol =
w1: [0x1 sym]
w2: [0x1 sym]
w3: [0x1 sym]
w4: [0x1 sym]
w5: [0x1 sym]
w6: [0x1 sym]
w7: [0x1 sym]
w8: [0x1 sym]
w9: [0x1 sym]
w10: [0x1 sym]
w11: [0x1 sym]
w12: [0x1 sym]
If the goal is analyze the static equilirium of the body, then we have to make sure that the contact forces satisfy (1). Of course, (1) yields an infinite number of solutions for equilibrium. Not sure what kind of solution is of interest, but any additional constraint equations added to (1) to further narrow down the scope of the problem need to be linearly independent of the balancing equations.
Or perhaps one could solve for the values in w that yield the minimum norm of F, or any other desirable property of F.
Keep in mind that the mapping from w to F is not 1-1, that is different values in w can lead to the same values in F. For example, solve for F assuming a simple set of values for w
Now assume we are given the forces in FF and solve for w. The result is different than what we started from
solw = solve(F==FF)
solw =
w1: -4634578167/723888464
w2: -7633332147/180972116
w3: -40458567/6134648
w4: -2401984815/55683728
w5: -13775113539/361944232
w6: 0
w7: -2238/59
w8: 0
w9: 0
w10: 0
w11: 0
w12: 0
But this solution yields the same force vector.
FF - subs(F,solw)
ans =

vc = [0 -v(3) v(2);v(3) 0 -v(1);-v(2) v(1) 0];