My array should equal this, but it doesn't!
Brachylog, 8 bytes
h⊇.+~t?∧

Try it online!
Monthly Brachylog answer. Returns false. if it is not possible.
Explanation
h⊇.           The output is a subset of the head of the input
  .+~t?       The sum of the elements of the output must equal the tail of the input
       ∧      (Avoid implicit unification between the output and the input)