I have launched the client with -rescan and now I am able to grab the raw transaction, when I push it with
https://blockchain.info/pushtx I get "unable to find all tx inputs" yet it still appear in the client for some reason.
Could be. The client doesn't report (or, in general, even know)
why a transaction isn't getting confirmations, it just accurately reports zero.
You could track down all of the inputs to your 0-conf. One or more of them either has been already used, or wasn't confirmed (perhaps because it wasn't broadcast).