Finally found the problem.
In the previous versions, we had to deploy the proxyAdmin and pass it's address in the proxy constructor, but in V5 the proxy deploys it's own admin. It also makes the passed admin address the owner of new admin contract.
So basically when I used the old method with the new contract, my Proxy's admin was the admin contract that it deployed, and the other admin contract I deployed became the owner of this admin contract. Resulting in this mess.