The bank can only buy players if nobody bids on them. An offer under the asking price will stop a player being sold to the bank. The problem is that some managers are asking for the max possible for the players and choosing sell player to the bank as the first option, knowing full well that they will get at least near the asking price.
Perhaps the answer is to only allow sell to bank as an option if you have not asked for more than the market value of the player.
If managers are saving for facilities and trying to get players below their market value, that's their choice but a selling manager should have a fair option to get what the player is worth. It's not a charity.
As transfer values have been devalued, it's not unreasonable to expect to be able to sell the player for the market value (or it's an admission that market values are still wrong), but if nobody wants him for tbat, then, and only then, is the bank an acceptable option.