I certainly can.
The different APs are mostly there due to the horrible antennas (antennae?) on most of my IoT devices on 2.4GHz. The environment here is also pretty bad; I see a couple of neighbours APs as stronger than my Mikrotiks 
Specific devices are given the credentials to specific APs. The only auto roaming I would look forward to would be my portable devices which are specific to the 5GHz band; but it’s not critical to me at all.
Almost gave CAPsMAN a shot but I read it won’t work on my AC2 (still in storage) and obviously it won’t work on the consumer routers so I gave this a shot first.
Hope I’ve redacted enough info (left the firewall rules in). I did also remove the leases but I can add that back in if it’s helpful.
I enabled the DHCP debug logs and that’s where I saw the lease extending message but nothing else that I caught; I did see the “host” as being the commercial router’s names though.
# 2025-01-06 10:46:36 by RouterOS 7.16.2
# software id = 656F-F0UA
#
# model = C53UiG+5HPaxD2HPaxD
/interface bridge
add admin-mac=48:A9:8A:AA:BB:CC ageing-time=1h auto-mac=no comment=defconf \
igmp-snooping=yes name=bridge port-cost-mode=short
/interface wifi
set [ find default-name=wifi1 ] channel.reselect-interval=3h..12h \
.skip-dfs-channels=all configuration.antenna-gain=5 .country=Singapore \
.mode=ap .ssid=Wifi1 .tx-power=26 disabled=no \
security.authentication-types=wpa2-psk,wpa3-psk .connect-priority=0 .wps=\
disable
set [ find default-name=wifi2 ] channel.band=2ghz-n .frequency=2452 \
.reselect-interval=3h..12h .skip-dfs-channels=disabled .width=20mhz \
configuration.antenna-gain=7 .country=Singapore .mode=ap .ssid=Wifi2 \
.tx-power=25 disabled=no security.authentication-types=wpa2-psk,wpa3-psk \
.connect-priority=0 .wps=disable
add configuration.ssid=Wifi1-Guest disabled=no mac-address=\
4A:A9:8A:AA:BB:C1 master-interface=wifi1 name=wifi3
add configuration.ssid=Wifi2-Guest disabled=no mac-address=\
4A:A9:8A:AA:BB:C2 master-interface=wifi2 name=wifi4
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/iot lora servers
add address=eu.mikrotik.thethings.industries name=TTN-EU protocol=UDP
add address=us.mikrotik.thethings.industries name=TTN-US protocol=UDP
add address=eu1.cloud.thethings.industries name="TTS Cloud (eu1)" protocol=\
UDP
add address=nam1.cloud.thethings.industries name="TTS Cloud (nam1)" protocol=\
UDP
add address=au1.cloud.thethings.industries name="TTS Cloud (au1)" protocol=\
UDP
add address=eu1.cloud.thethings.network name="TTN V3 (eu1)" protocol=UDP
add address=nam1.cloud.thethings.network name="TTN V3 (nam1)" protocol=UDP
add address=au1.cloud.thethings.network name="TTN V3 (au1)" protocol=UDP
/ip pool
add comment="Default Pool" name=dhcp ranges=192.168.79.101-192.168.79.254
add name="Portable Devices 79.1 - 79.100" ranges=192.168.79.1-192.168.79.100
/ip dhcp-server
add add-arp=yes address-pool=dhcp interface=bridge lease-time=7h name=defconf
/zerotier
set zt1 comment="ZeroTier Central controller - https://my.zerotier.com/" \
name=zt1 port=9993
/zerotier interface
add allow-default=no allow-global=no allow-managed=yes instance=zt1 name=\
zerotier1 network=redacted
/interface bridge filter
add action=drop chain=forward in-interface=wifi3
add action=drop chain=forward out-interface=wifi3
add action=drop chain=forward in-interface=wifi4
add action=drop chain=forward out-interface=wifi4
/interface bridge port
add bridge=bridge comment=defconf interface=ether2 internal-path-cost=10 \
path-cost=10 trusted=yes
add bridge=bridge comment=defconf interface=ether3 internal-path-cost=10 \
path-cost=10
add bridge=bridge comment=defconf interface=ether4 internal-path-cost=10 \
path-cost=10
add bridge=bridge comment=defconf interface=ether5 internal-path-cost=10 \
path-cost=10
add bridge=bridge comment=defconf interface=wifi1 internal-path-cost=10 \
path-cost=10
add bridge=bridge comment=defconf interface=wifi2 internal-path-cost=10 \
path-cost=10
add bridge=bridge interface=wifi3 internal-path-cost=10 path-cost=10
add bridge=bridge interface=wifi4 internal-path-cost=10 path-cost=10
/ip firewall connection tracking
set udp-timeout=10s
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface detect-internet
set detect-interface-list=all
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
/interface wifi cap
set discovery-interfaces=LAN enabled=yes
/ip address
add address=192.168.77.1/22 comment=defconf interface=bridge network=\
192.168.76.0
/ip dhcp-client
add comment=defconf interface=ether1
/ip dhcp-server network
add address=192.168.76.0/22 comment=defconf dns-server=192.168.77.1,1.1.1.1 \
gateway=192.168.77.1 netmask=22
/ip dns
set allow-remote-requests=yes servers=1.1.1.1
/ip dns static
add address=192.168.77.1 comment=defconf name=router.lan type=A
/ip firewall filter
add action=accept chain=input comment=\
"defconf: accept established,related,untracked" connection-state=\
established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment=\
"defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" \
in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" \
ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" \
ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \
connection-state=established,related hw-offload=yes
add action=accept chain=forward comment=\
"defconf: accept established,related, untracked" connection-state=\
established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
connection-state=invalid
add action=drop chain=forward comment=\
"defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \
connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" \
ipsec-policy=out,none out-interface-list=WAN
add action=dst-nat chain=dstnat comment="HA Let's Encrypt" dst-port=80 \
in-interface-list=WAN protocol=tcp to-addresses=192.168.77.18 to-ports=80
add action=dst-nat chain=dstnat comment="HA Http" dst-port=443 \
in-interface-list=WAN protocol=tcp to-addresses=192.168.77.18 to-ports=\
443
add action=dst-nat chain=dstnat comment="Hairpin Nat 1" dst-address-list=\
!router dst-address-type=local dst-port=443 protocol=tcp to-addresses=\
192.168.77.18 to-ports=443
add action=masquerade chain=srcnat comment="Hairpin NAT 2" dst-address=\
192.168.77.18 dst-port=443 out-interface=bridge protocol=tcp src-address=\
192.168.76.0/22
/ip ipsec profile
set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5
/ip upnp
set enabled=yes
/ip upnp interfaces
add interface=bridge type=internal
add interface=ether1 type=external
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/ipv6 firewall filter
add action=accept chain=input comment=\
"defconf: accept established,related,untracked" connection-state=\
established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=\
invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=\
icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" port=\
33434-33534 protocol=udp
add action=accept chain=input comment=\
"defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=\
udp src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 \
protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=\
ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=\
ipsec-esp
add action=accept chain=input comment=\
"defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment=\
"defconf: drop everything else not coming from LAN" in-interface-list=\
!LAN
add action=accept chain=forward comment=\
"defconf: accept established,related,untracked" connection-state=\
established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" \
connection-state=invalid
add action=drop chain=forward comment=\
"defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment=\
"defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" \
hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=\
icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=\
500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=\
ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=\
ipsec-esp
add action=accept chain=forward comment=\
"defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment=\
"defconf: drop everything else not coming from LAN" in-interface-list=\
!LAN
/system logging
add disabled=yes topics=dhcp
/system note
set show-at-login=no
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
/user group
add comment="homeassistant perms" name=HAPerms policy="reboot,read,write,polic\
y,test,api,!local,!telnet,!ssh,!ftp,!winbox,!password,!web,!sniff,!sensiti\
ve,!romon,!rest-api"