Roaming wifi connection is there to find the "better" connection, avoiding what is called "sticky clients" . "Sticky clients" connect and stay connected to that first connected AP until the wifi connection is disconnected. "Sticky clients" remain connected even is the signal is very weak, and the transmission quality is low. Wifi adjusts by lowering the number of streams and by lowering the MCS encoding, resulting in a very slow connection (interface rate from 866Mbps in steps down to 6Mbps) with many retransmits, consuming a lot of "air time" on that channel, slowing down everyone on that channel. (Wifi can only have one transmitter in a channel at a time, therefor air-time is a very limiting resource).(Wifi does not drop packets, but retransmits until disconnected)
A client station will roam faster if the link is bad, and should stay connected if the link is good. Unfortunatly estimating good/bad is problematic with wifi. Signal strength is a poor indicator for this.
Unfortunatly my experience with GL.inet (SFT1200 version 4.3.x) is that the GL.inet roamed for no apparent reason. One of the reasons found is that GL.inet then mishandled MPDU aggregated transmissions with more than 31 MPDU's aggregated, giving failed transmissions, due to its own processing with good wifi, now signaled as bad wifi.
Roaming is within the same SSID, but GL.inet (like most smartphones) will also try whatever other known SSID. So if there is more than one known SSID in your Beryl, even with BSSID lock it will roam to that other SSID. Only one known SSID and BSSID lock are needed to stabilise.
Yet another GL.inet choice is using Multiwan (mwan3) checks, what will trigger switching to another or switching off/on connections, based on those checks. The ifdown/ifup actions in router "Network Mode" include the tear down and reload of the firewall with all current IP sessions (Checks may fail even due to a busy internet, independent from the wifi connection quality). Stopping Multiwan checks is here just another mitigating action.
GL.inet has many problems with stable TXpower control, at least on my SFT1200 this is dramatic. Setting TXpower to LOW gives stronger signal than HIGH or MAX.
Debugging wifi connections is like sitting in front of 7 switches connected in series. Not knowing what and how many switches are in the wrong position, finding the right setting takes 128 combinations. And if the lamp is not very stable, one might miss that one single correct combination when selected.