Hi @marsxr,
Welcome to the community
Thanks for the feedback. I recommend multi-file verification (easier to read, maintains licenses, maintains imports), and currently the best way to do this is with Buidler Etherscan plugin.
Multi-file verification should be coming to Truffle, see this open issue: https://github.com/rkalis/truffle-plugin-verify/issues/37
Once Truffle supports this I can add to the tutorial.
You should only need to verify the implementation contract, as generally the proxy and the ProxyAdmin should be verified on most public networks. (if not, let me know and I can verify).
Etherscan has support for proxies: Etherscan does have support for correctly showing OpenZeppelin proxies and their implementations
As for the proxy and the ProxyAdmin, they are precompiled with Solidity 0.6.8 currently, so when you deploy an upgradeable contract, you are only compiling your implementation contract with whatever Solidity version you want to use, whilst the precompiled versions of the proxy and ProxyAdmin are deployed.