Can you "undo" an nlockTime transaction by spending a single UTXO of it before lockTime's block happens? Let's say I have a wallet X with money from 3 unspent outputs (UTXOs) A, B and C.

I make an nlocktime transaction to spend 2 of my 3 UTXOs (A &amp; B) to wallet Y, 1 month in the future, sign it, and give it to someone (actually the owner of wallet Y) so that this person can broadcast it later.

Now, let's say a week later, before the nlocktime's block happens, I go and spend one of the UTXOs of the nlocktime transaction (A), but not the other (B).

Will the person that receives the 1st transaction be able to spend the UTXO B in the end? Or would my 2nd transaction render the entire 1st transaction invalid?

Thanks
Since one of the inputs of the nLockTime transaction has been spent already, the nLockTime transaction becomes invalid, as not all referenced inputs are available for spending.

This is described in the Bitcoin developers guide explicitly as a way to cancel a locktime transaction: 


  If any of the signers change their mind, they can create a new non-locktime transaction. The new transaction will use, as one of its inputs, one of the same outputs which was used as an input to the locktime transaction. This makes the locktime transaction invalid if the new transaction is added to the block chain before the time lock expires.


Before the time or block height specified for the nLockTime transaction is reached, the transaction is considered invalid and will not be stored or relayed by (other) nodes. This has been weakened in 0.9.0 so that transactions one block within nLockTime are accepted for relay but not yet for inclusion.