Is VirtualAP / mixed encryption / mixed B/G stable?

I just put together a new wireless system using 3x RB532s, XR2s @ 21dBm and a 15dB multi-sector omni-directional antenna. For MikroTik clients, the main interface wlan1 is set to use WPA2 AES PSK. For legacy clients, I added a VirtualAP called wlan2 with no security and a hidden SSID / access list setup. The wlan1 interface is set to mixed B/G since I wish to benefit where possible from speeds offered by G, but a lot of legacy clients are B only. The AP is acting as pretty much a basic AP - wlan1/wlan2 are bridged to ether1, no conntrack/DHCP/queues are in use.

Clients are a mix of MikroTik / CM9, MikroTik / RB53, Tranzeos and a few others. I currently have only 4 clients on one AP, but all of them are experiencing disconnections and general instability - for instance, after re-associating or after I change a wlan setting on the MikroTik clients, they won’t pull a new IP address for up to 2 hours - my DHCP server shows the DHCPDISCOVER and sends out an offer, but it is never ACKed. Clients are disconnecting with “no beacons”. Example of one MikroTik / CM9 client:

14:21:20 wireless,info 00:15:6D:63:51:58@wlan1 established connection on 2437, SSID S2 
14:28:20 wireless,info 00:15:6D:63:51:58@wlan1: lost connection, no beacons 
14:28:22 wireless,info 00:15:6D:63:51:58@wlan1 established connection on 2437, SSID S2 
14:49:25 wireless,info 00:15:6D:63:51:58@wlan1: lost connection, no beacons 
14:49:26 wireless,info 00:15:6D:63:51:58@wlan1 established connection on 2437, SSID S2 
14:56:27 wireless,info 00:15:6D:63:51:58@wlan1: lost connection, no beacons 
14:56:29 wireless,info 00:15:6D:63:51:58@wlan1 established connection on 2437, SSID S2 
15:10:30 wireless,info 00:15:6D:63:51:58@wlan1: lost connection, no beacons 
15:10:31 wireless,info 00:15:6D:63:51:58@wlan1 established connection on 2437, SSID S2 
15:17:32 wireless,info 00:15:6D:63:51:58@wlan1: lost connection, no beacons 
15:17:34 wireless,info 00:15:6D:63:51:58@wlan1 established connection on 2437, SSID S2 
15:24:34 wireless,info 00:15:6D:63:51:58@wlan1: lost connection, no beacons 
15:24:35 wireless,info 00:15:6D:63:51:58@wlan1 established connection on 2437, SSID S2 
15:31:35 wireless,info 00:15:6D:63:51:58@wlan1: lost connection, no beacons 
15:31:37 wireless,info 00:15:6D:63:51:58@wlan1 established connection on 2437, SSID S2 
15:59:42 wireless,info 00:15:6D:63:51:58@wlan1: lost connection, no beacons 
15:59:43 wireless,info 00:15:6D:63:51:58@wlan1 established connection on 2437, SSID S2 
16:13:45 wireless,info 00:15:6D:63:51:58@wlan1: lost connection, no beacons 
16:13:47 wireless,info 00:15:6D:63:51:58@wlan1 established connection on 2437, SSID S2

On the AP:

14:07:50 wireless,info 00:0B:6B:37:9C:17@wlan2: connected 
14:21:20 wireless,info 00:0B:6B:4F:11:5C@wlan1: disconnected, reassociating 
14:21:20 wireless,info 00:0B:6B:4F:11:5C@wlan1: connected 
14:28:22 wireless,info 00:0B:6B:4F:11:5C@wlan1: disconnected, reassociating 
14:28:22 wireless,info 00:0B:6B:4F:11:5C@wlan1: connected 
14:29:00 wireless,info 00:0B:6B:37:9C:17@wlan2: disconnected, reassociating 
14:29:00 wireless,info 00:0B:6B:37:9C:17@wlan2: connected 
14:49:26 wireless,info 00:0B:6B:4F:11:5C@wlan1: disconnected, reassociating 
14:49:26 wireless,info 00:0B:6B:4F:11:5C@wlan1: connected 
14:56:29 wireless,info 00:0B:6B:4F:11:5C@wlan1: disconnected, reassociating 
14:56:29 wireless,info 00:0B:6B:4F:11:5C@wlan1: connected 
14:57:09 wireless,info 00:0B:6B:37:9C:17@wlan2: disconnected, reassociating 
14:57:09 wireless,info 00:0B:6B:37:9C:17@wlan2: connected 
15:04:14 wireless,info 00:0B:6B:37:9C:17@wlan2: disconnected, reassociating 
15:04:14 wireless,info 00:0B:6B:37:9C:17@wlan2: connected 
15:10:31 wireless,info 00:0B:6B:4F:11:5C@wlan1: disconnected, reassociating 
15:10:31 wireless,info 00:0B:6B:4F:11:5C@wlan1: connected 
15:11:17 wireless,info 00:0B:6B:37:9C:17@wlan2: disconnected, reassociating 
15:11:17 wireless,info 00:0B:6B:37:9C:17@wlan2: connected 
15:17:34 wireless,info 00:0B:6B:4F:11:5C@wlan1: disconnected, reassociating 
15:17:34 wireless,info 00:0B:6B:4F:11:5C@wlan1: connected 
15:24:35 wireless,info 00:0B:6B:4F:11:5C@wlan1: disconnected, reassociating 
15:24:35 wireless,info 00:0B:6B:4F:11:5C@wlan1: connected 
15:31:37 wireless,info 00:0B:6B:4F:11:5C@wlan1: disconnected, reassociating 
15:31:37 wireless,info 00:0B:6B:4F:11:5C@wlan1: connected 
15:44:07 wireless,info 00:09:92:01:12:0C@wlan2: connected 
15:44:42 wireless,info 00:09:92:01:12:0C@wlan2: disconnected, reassociating 
15:44:42 wireless,info 00:09:92:01:12:0C@wlan2: connected 
15:59:43 wireless,info 00:0B:6B:4F:11:5C@wlan1: disconnected, reassociating 
15:59:43 wireless,info 00:0B:6B:4F:11:5C@wlan1: connected 
16:13:47 wireless,info 00:0B:6B:4F:11:5C@wlan1: disconnected, reassociating

Signal on the client is -61dB, signal on the AP is -67dB. TX/RX CCQ is >90% the majority of the time, usually 100/99 or similarly high. There is good line of sight - Fresnel clearance isn’t perfect, but these clients were working fine on an old system with 9dB antennas on the tower and a 20dBm radio with weaker sensitivity than the XR2. There are no other towers or other sources of 2.4GHz for miles, I am sure there is no interference. The only thing I can think of is the software or radio is unstable in the setup I have - is Virtual AP “production quality”? Is mixing B/G a bad idea? I can’t figure out why this is causing so many problems, any help would be appreciated.

Interesting, I did some tests pinging the problem client which is connected on channel 6 while I downloaded at 10mbps on channel 1. CCQ dropped to < 30% and the client repeatedly dropped during my download and pings were all over the place:

1308 bytes from 172.16.2.100: icmp_seq=467 ttl=64 time=143 ms
1308 bytes from 172.16.2.100: icmp_seq=468 ttl=64 time=31.0 ms
1308 bytes from 172.16.2.100: icmp_seq=469 ttl=64 time=16.0 ms
1308 bytes from 172.16.2.100: icmp_seq=470 ttl=64 time=111 ms
1308 bytes from 172.16.2.100: icmp_seq=471 ttl=64 time=193 ms
1308 bytes from 172.16.2.100: icmp_seq=472 ttl=64 time=45.7 ms
1308 bytes from 172.16.2.100: icmp_seq=473 ttl=64 time=183 ms
1308 bytes from 172.16.2.100: icmp_seq=474 ttl=64 time=1749 ms
1308 bytes from 172.16.2.100: icmp_seq=475 ttl=64 time=765 ms
1308 bytes from 172.16.2.100: icmp_seq=476 ttl=64 time=742 ms
1308 bytes from 172.16.2.100: icmp_seq=477 ttl=64 time=774 ms
1308 bytes from 172.16.2.100: icmp_seq=478 ttl=64 time=490 ms

So much for non-overlapping frequencies…