Yo boy, must it sum
Brachylog, 7 bytes
~+ℕᵐ.↔ᵐ
Try it online!
Surprisingly not that slow.
Explanation
(?)~+ . Output is equal to the Input when summed
ℕᵐ. Each element of the Output is a positive integer
.↔ᵐ(.) When reversing each element of the Output, we get the Output
Python 2, 82 79 bytes
f=lambda n:min([f(n-k)+[k]for k in range(1,n+1)if`k`==`k`[::-1]]or[[]],key=len)
Try it online!
Jelly, 12 10 9 8 bytes
ŒṗDfU$ṪḌ
Try it online!
How it works
ŒṗDfU$ṪḌ Main link. Argument: n (integer)
Œṗ Find all integer partitions of n.
D Convert each integer in each partition to base 10.
$ Combine the two links to the left into a chain.
U Upend; reverse all arrays of decimal digits.
f Filter the original array by the upended one.
Ṫ Take the last element of the filtered array.
This selects the lexicographically smallest decomposition of those with
the minimal amount of palindromes.
Ḍ Undecimal; convert all arrays of decimal digits to integers.