DocFraggle yeah so I just checked the header and ChatGPT noted the following about the header;
Even though SPF/DKIM/DMARC are all valid, Microsoft 365 applies content & reputation filtering:
IP Reputation – Your sending IP xx.237.xxx.xxx might be new, have low reputation, or previously belonged to someone blacklisted.
Domain Age/Reputation – If yourdomain.com is relatively new or hasn’t built trust with mailbox providers, its “sender reputation” is weak.
Content / Style – The body looks sales/marketing-heavy:
Multiple “business keywords” (investment, clients, properties, collaborate, marketing).
No plain-text version (only HTML).
Contains an external link (to your website).
Could look like a cold outreach template → typical spammer pattern.
Message-ID oddity

This was generated with a gmail.com identifier, not yourdomain.com That mismatch looks suspicious to filters.
THEN IT SUGGESTED THE FOLLOWING AS SOLUTION;
How to Improve Delivery
Fix Message-ID
Configure Postfix or Dovecot (depending on your Mailcow setup) so Message-ID matches your domain (@yourdomain.com).
Gmail-style IDs raise flags when not sending via Gmail.
### Please how do i fix this message ID issue. Thanks