Enumerate all valid orders of subset sums
Here is one algorithm that runs in doubly exponential time -- so probably useless.  In other words, this answer is probably not useful.

You can check whether an order is valid in $2^{O(n)}$ time (i.e., $\text{poly}(2^n)$ time) by reducing to linear programming: you obtain $2^n+n-2$ linear inequalities in $n$ variables, and you can test for feasibility in time polynomial in the number of inequalities and variables.  Then, enumerating over all possible sums and checking if each is valid would yield a $(2^n)! 2^{O(n)} = 2^{n 2^n + O(2^n)}$ time algorithm.  This will be ridiculously slow in practice.



To improve this, you could use an iterative pruning / branch-and-bound style algorithm.  Given a prefix $S_1,\dots,S_k$ of an order, we can test whether it is valid using linear programming as above.  If it is not, we don't consider any order that starts with this prefix.  In other words, do breadth-first search: first choose $S_1$, then choose $S_2$, then choose $S_3$, and so on, at each step checking whether the prefix obtained so far is valid.

This may still be extremely slow, as there is the possibility that a prefix $S_1,\dots,S_k$ is valid but there is no way to complete it to a full order $S_1,\dots,S_{2^n}$ that is valid, so this might do a lot of wasted work.