Have you tried turning off MAC randomization to see if it makes a difference?
It’s simply a toggle setting under the Wi-Fi preferences for each configured wireless network under the “Privacy” section.
Every hardware network interface has a factory assigned MAC that usually cannot be changed by end users. However, many hardware manufacturers and network device drivers support MAC spoofing.
The problem described above can also be caused by the router. In the most common type of setup the DHCP server in the router grabs an available IP address from its IP address pool and associates it with the MAC address sent by the client device (it’s how the DHCP server knows when an IP address is available again).
For Meshenger, I suspect the app keeps track of which network interface to use via the MAC address rather than use the system device interface name.
For Syncthing, by default it listens on all available network interfaces so it doesn’t matter if the MAC addresses change.
Android doesn’t change MAC addresses on a fixed timer or during an active Wi-Fi connection. Before Android 12, a random MAC is generated just once per Wi-Fi network (the trigger is based on the SSID and other factors). Starting with Android 12 a new MAC can be regenerated for an existing network but only under specific conditions.
Even with that particular developer setting, the DHCP lease has to have expired or the phone has been disconnected from a given network for at least 24 hours before a new pseudo-random MAC is generated (it’s actually not completely random).
Otherwise there’s a chance the pool of IP addresses managed by a router’s DHCP server could be exhausted. Your phone disconnects when going to sleep. If the previous DHCP lease hasn’t expired its IP address will be unavailable. So when your phone reconnects, a new lease for a different IP address will be issued for your new MAC address. With enough reconnects and users all randomizing MAC addresses, the router could end up leasing out all its IP addresses before any expires.