I am still not sure what your actual goal is and why you want to change Mailcow’s subnet, which should not be necessary for any scenario I can think of here.
Do you want to use Mailcow as a relay to send emails to 3rd party email accounts? Or do you want the emails to end up in mailboxes hosted on your Mailcow?
If the former is the case,, you should use authentication whenever possible, or if that’s not possible, just follow the instructions posted by @pkernstock
Side note, just to avoid any potential missunderstandings 😉 All of these methods, including your workaround of changing the Mailcow subnet, will of course only work if your Mailcow server is properly configured (PTR record, MX record, DKIM, SPF and DMARC record and all that nice stuff). Or in other words, if your Mailcow isn’t properly added to the public DNS, the servers you’re sending mail to are likely to reject your messages or put them in the spam folders, i.e. it would have the same effect as if you wouldn’t use Mailcow as a relay and sent the messages directly from your servers and devices to the intended addresses.
If the latter is the case, and you only need to send emails to mailboxes hosted on Mailcow, shouldn’t it be enough to add the IPs of the sending servers and devices to "System -> Configuration -> Options -> “Forwarding Hosts” in order for Mailcow to accept the messages?