You can peer up to 125 VPCs if you ask AWS to raise your default limit. You're correct that you can't have overlapping IP ranges.
Some thoughts related to your questions
I'm designing an enterprise AWS system right now which could end up with dozens of accounts, dozens of VPCs, and many many peering connections. Many accounts gives you a more limited blast radius. I've seen enterprises with over 100 accounts. Some large enterprises apparently have thousands of accounts.
My overall structure will probably have a /19 network range, which is 8192 hosts, less AWS overheads. Each VPC will get the range it needs, perhaps as small as a /28 (16 IPs less AWS overheads = 11 IPs), some may get a /24 with 256 IPs (251 after reservations). VPCs can have their ranges enlarged now.
To answer your questions
A /16 block, which is the maximum size of a VPC, can have 65535 subnets. They're small subnets, of 1 IP, but you can do it. To be practical, you could still have thousands of subnets.
Yes, you would basically just recreate your VPC and all resources inside it to enable VPC peering. Ideally you'll use something like CloudFormation so you're doing infrastructure as code, to make it easier. There may be a way to generate a CloudFormation script from a VPC, you'll have to Google that. Don't expect it to be trivial.