Performance issues can sometimes be challenging to pinpoint and solve. In my experience, the following are mostly responsible for poor performance:
- Using unoptimized queries, missing indexes, etc.
- Using row-based operations instead of set-based operations.
- Code not optimized for performance.
Because the environment is running in the cloud, if there is high demand for computing resources by other cloud customers, your environment's resources can temporarily be reduced. This could explain why you are experiencing spikes in poor performance in standard Dynamics 365 FSCM functionality. Moving your Dynamics 365 FSCM environment from the cloud to on-premises might be an alternative to consider. I have not compared running in the cloud with on-premises, so I can’t comment much on it.
I don’t think moving to the next licensing tier will solve all performance issues. Because you have a complex Dynamics 365 FSCM environment, someone will need to investigate each bottleneck in depth to determine the root cause. Importing an order with 300 lines should definitely not take hours to import. It should not take longer than a few minutes or so. You mentioned OData; OData is notoriously slow, and I strongly recommend (in most cases) using the Data Management Framework instead for recurring integrations, especially for bulk data.
If standard functionality, like opening a sales order, is performing poorly and there are no related customizations involved, Microsoft should investigate and resolve any issues. In my experience, standard Dynamics 365 FSCM performs at acceptable levels overall in most cases.
My experience with support tickets is that escalation through the partner is often required to achieve better results. The "higher" you can escalate, the better.
Similarly, with ISV solutions, if there are performance issues, the ISV should investigate and resolve them.
If custom functionality is performing poorly, the customizations should be investigated and reviewed in depth to pinpoint the performance bottlenecks.
Wherever possible, plan and schedule batch jobs to run outside office hours as much as possible.
The chances of this are low, but have you ruled out office network bandwidth bottlenecks or other networking issues, such as VPN connections or DNS? Have you tested the system performance from other locations, like from your home or using your mobile phone’s Wi-Fi connection? Which browser are your employees using? Could the browser be causing the performance issues? Is there some kind of third-party add-in running in the browser?