What channels are the access points operating on and what channels do those legacy clients support? Are they 2.4GHz only or do they support 5GHz?
What power level are the access points running at? If they are running high, then you might have way too much coverage overlap between the access points, meaning the clients won't roam because they can hear the first AP too well still, even when standing under another AP.
Its possible it isn't able to see all of the access points because they might be using DFS channels or something the legacy clients don't support.
As others already mentioned, the client decides 100% when to roam based on whatever algorithm it has built-in.