Are you set up in company 3 with a Person record? Or are you a Global User only? I'm not sure if this makes a difference but it's worth checking. CompaniesBlock is a global block, independent of the company number.
Hi, Paul.
Sounds like you're talking about REST API. And that your are overwriting data with older values if B managed to read record before A finished to update it. Classic conflict resolution ...