How do you redeem a compressed key? There is very good answer here: How to redeem a basic Tx? 
It works great.

But the algorithm is only for uncompressed addresses/keys, how can I change it to deal with compressed ones?

And the second question - how should I change the procedure to redeem several inputs?
Exactly the same way, except instead of putting the compressed public key in the redeeming script, you use the compressed one. Decompressing it won't work, as that would change its hash (the address).