You did not specify which version of Dynamics AX you are using. I recall some serious performance issues with inventory recalculation and closing with 4.0 and 2009 around BOMs, though it was years ago when I solved them last. I recall that typically they could be solved with some additional indexes.
You may also have SQL Server configured to use parameter sniffing (default out of the box) which can create a lot of performance issues with multiple company AX environments, especially if one company is much smaller than the others.
I would recommend first that you monitor expensive queries with SQL Server while you are running MRP to get an idea if the problem is based on poor SQL Server performance or poor AX AOS performance (high CPU utilization by the ax32serv.exe process). Make sure you do a DBCC FREEPROCCACHE on SQL Server before running MRP to avoid parameter sniffing issues.
Please let us know what you find so we can help further.