Can the outputs of transactions with duplicate hashes be spent?
Updated as my earlier answer was wrong

Quoting from BIP 0030:


  Blocks are not allowed to contain a transaction whose identifier matches that of an earlier, not-fully-spent transaction in the same chain.
  
  This rule is to be applied to all blocks whose timestamp is after a point in time


This means that a transaction can have the same hash multiple times as long as it's always spent first before the new transaction is created.

As for the older transactions: they are valid but the network won't let you spend them because the implementation in the reference client won't let you.