The answer is pretty simple here. Just match your water to the store's. You test your water and listed off a bunch of parameters, but what about the store's? Ask them to test theirs next time you go in there. Then you'll know where your water matches up with theirs.
Think of acclimation like this: What happens if you take a polar bear from the Arctic and stick em in the desert? I mean, instantly. He stresses out from the new environment and likely dies that day or within a few days.
Same concept for the fish. So, give the fish time to adjust. You can check out this video about "drip acclimation"
, which makes very gradual changes over time (It's talking about saltwater, but the concept can be applied to fresh.)
I also noticed you didn't mention your ammonia levels.
Some other factors (in addition to what's been mentioned already) may be that you're buying fish the day they come into the store. So they're being netted once to get shipped to the store (stressed), then netted again to get to your tank (more stress). Plus, if they make this journey in the matter of a day or even just a few days you can kinda get a better idea of the stress on the fish in terms of changing environments. Go from pH 7 on Monday, to pH 7.5 on Tuesday, to pH 8.5 on Wednesday is alot of change to adjust to (plus all the other params). Even if your parameters were perfect conditions for the fish, your fish could still die because of these changes, you have to take into account change. Generally, the more constant the water chemistry, the easier it is on fish.
So, it may help you to ask a store before getting a new fish, "When did you get these?"