It seems as if they are saying that we use the commitment to zero to sign the ring with the inputs as message.
Not quite, it does use it, but it is not the actual signing key.
Signing m with ko proves you are the owner/recipient of the amount committed to in Ca. Verifiers can be confident that transaction authors are spending their own funds.
And further up says:
With this observation made we can see the utility of zG. All commitment terms in R return some EC point, and the πth such term is zG. This allows us to create an MLSAG signature (Section3.3) on R.
Moving to your next question:
Each input needs the private key associated with it's one-time-pubkey/address in order to unlock it. So does each input have a ring signature with the private key corresponding to the one-time-public key needed to unlock our input?
Yes. Or to put it more accurately, the receiver of the outputs now being used as inputs (to spend), has derived the private keys (using the tx shared secret from the tx they received these outputs from, and their own wallet private keys).
Then maybe the commitment to zero is used to sign the whole transaction?
No. I think where you are getting lost is the distinction between proving ownership of inputs being spent and proving that the output amounts balance out the input amounts. The former is the job of the MLSAG signature(s), the latter is the job of the Pedersen commitments and the Range proofs (the commitments hide the amounts and prove the inputs minus outputs balance out, the range proof proves that each amount in an output commitment is within a range, in this case positive, which prevents creating money out of thin air).
The commitment to zero is used in the construction of the MLSAG signature, it is not the signing key itself.