GAH! So close. I made one little error right at the end, and shorted myself 5 Diamonds which I could have used to buy two more Hearts.
Ah-ha! I figured out a trick to getting a higher score.
The "spreading" enemy doubles itself every 3 turns, and if you kill one part of it, it drops a random piece. If you wait until the late game and set one loose, you can get more drops so long as your Swords and Spades are sufficient to clean up the ensuing mess.