For starters, consider running the SRC (Stable Release Candidate) firmware 25.9 if you're not already. You could check with Meraki Support first to scrub your config and confirm 25.9 is a good choice, just in case there's a known issue specific to your environment or AP models.
Remember that it's ALWAYS the clients (not the APs) that ultimately make the roaming decisions, and it varies wildly by device vendor, by operating system, and by device driver versions. I've seen devices cling for dear life to an AP 50 feet away when it's right underneath another AP. It's very device-dependent.
So we cannot control the clients, but we try to get them behaving well via best practice settings. And even then, they don't always behave well, and still varies by device type, OS and driver version. And don't forget that every RF environment is going to be different, and in a given RF environment, every client is going to have a different perception of it. Different vendors and different operating systems will use different methods, often based on RSSI, which is typically proprietary and different phone/laptop/tablet manufacturers implement in different ways.
So it's entirely possible that client devices can stay "sticky" to an AP even on a floor above or below (through a ceiling or floor) even with another AP in the same room. Obviously there's going to be signal attenuation through a ceiling/floor, but there could still be enough signal strength to keep the client happily associated at a reasonable data rate.
Newer clients that support 802.11k, 11v, 11r (all of which are there in r25 firmware) can leverage neighbor reports to interact with APs to make optimal roaming decisions, and APs can assist with client balancing, but still, it's the client who makes the decision and initiates the roam. And that decision process is a dynamic one with constantly changing variables, such as people (attenuators) moving around.
I've observed similar behavior in my own home, where I have an AP in my basement office and an AP in a 2nd floor bedroom. Some devices will consistently roam from AP1 to AP2 when I get within 15 feet of the AP, while other devices will stay associated to AP1 no matter how close I get to AP2. The behavior isn't perfect but improved with newer firmware.
And implement standard best practices, like setting minimum bit rates to 12Mbps (for example), using automatic power reduction, band steering to favor 5GHz, minimizing the number of SSIDs, using an appropriate channel width, including DFS channels if appropriate, etc.
And of course you can always get with Meraki Support to take a closer look at your specific APs and clients where you’re seeing roaming issues. Many "roaming issues" can actually be normal behavior given client dependencies and so many variables. Still, Support has additional tools on the back-end to get some insight on how the APs are behaving and communicating regarding client roaming and steering.
More info
https://documentation.meraki.com/MR/Other_Topics/Client_Balancing
https://documentation.meraki.com/MR/WiFi_Basics_and_Best_Practices/802.11k_and_802.11r_Overview
https://documentation.meraki.com/MR/WiFi_Basics_and_Best_Practices/Roaming_Technologies