Can you call the below to activate ACTION_RETURN_VALUE
cleos push action eosio activate '["c3a6138c5061cf291310887c0b5c71fcaffeab90d5deb50d3b9e687cead45071"]'
It looks like you called activate with the description_digest and not the feature_digest.
curl -X POST http://localhost:8888/v1/producer/get_supported_protocol_features | jq -r
What is the key generation process?
As Nat says in his answer, the keys are secp256k1 or secp256r1 curve keys. You can read more about that here: http://www.secg.org/sec2-v2.pdf
Can the same keypairs generated for the mainnet be used on any private network?
Yes. A private/public keypair created for one EOSIO chain is usable on another chain.
What is the ...
If you want to build a single contract with eosio.cdt you would need to modify the code.
Just use the build-script build.sh (located in the eosio.contracts-directory) to compile all system-contracts at once, without the need to modify any of them.