Transactions within orphaned blocks
Bitcoin Core includes code which rolls back a block from the chain when it is orphaned.  All transactions from that block are checked against the new best block chain to see if they've already been added to a block or if they spend the same input as a transaction already added to a block; if they aren't---meaning they're valid transactions on the new best block chain---they're re-added to the memory pool.

The re-added transactions will not be automatically rebroadcast like a newly-received transaction, but if a remote peer sends the mempool message to the local peer, the local peer will tell the remote peer about the transaction (using a standard inventory).