You return it to whatever gave it to you.
That would only work if the block made it into the public hash chain. Are you talking about solved blocks that have already been committed and confirmed?
When you are given the solution from pushpool. You have the timestamp, nonce, merkle root, and previous block hash to work with as well as the current block hash.
Any way to get a transaction id or specific block number or anything else from that? Or how would you determine whether the solution found was a valid one (and not stale/invalid to the network?)
That's not the miner's problem. The miner is given enough information to solve the block or generate a work unit. The miner does not have the entire block, just the header. In general, there's no way to get the rest of the information.
What's your outer problem? Why do you think you need this information and where are you when you're trying to get it? (Are you the miner? Are you the pool manger?)