CAN is just the physical and framing layer. The data that goes over it is a whole different matter, and it's proprietary to every vendor, incompatible and generally undocumented.
For a lot of cars you can't even swap the exact same ECU between vehicles (due to bullshit like the VIN being written into it for no reason, and often no official way to change that other than "buy a new module" - so you have to hack around with reverse engineering & EEPROM programmers), let alone mix and match completely different parts.