JavaScript (V8), 9291 bytes
f=([c,...x],s,n=R=[])=>1/n[4]?s||R[n.sort()]||print(R[n]=n):1/c?fc&&f(x,s,n)^f(x,s-c,[...n,c]):x
JavaScript (Node.js), 97 bytes
f=([c,...x],s,n=R=[])=>1/n[4]?s||R[n.sort()]?[]:[R[n]=n]:1/c?[...f(x,s,n),...f(x,s-c,[...n,c])]:x
JavaScript (Node.js), 98 bytes
f=(x,s,i=R={},...n)=>1/n[4]?s||R[n.sort()]?[]:[R[n]=n]:x.flatMap((e,j)=>i<=j?[]:f(x,s-e,j,...n,e))
Dedup