My internal alarm bells started going off as soon as I read about datum AA and datum M. Shouldn't it be possible if not standard practice for the design software to issue a giant warning if you have a part that is defined by two datums that are almost but not quite the same? If they aren't the exact same datum then something like this will inevitably happen.