AWS networking is a bit unusual in the sense that it does not allow for transitive peering (if A is peered with B, and B with C, A can't talk to C) and doesn't allow an account with Direct Connect or VPN connectivity to share that with another account. This is changing with the recent introduction of the Transit Gateway and the (very powerful) Resource Access Manager which allows for some inter-account resource sharing, but by default that's what you're stuck with.
Historically, you could get around this by creating an overlay network using VPNs, which is pretty much what you've done with OpenVPN. However, I would think that what you've shown would not work if you go though the standard AWS VPN gateway from your on-prem firewall, as it will not allow you to configure the tunnel with subnets that don't belong to its own VPC. You may be better off using OpenVPN for all the tunnels, not just between A and B.