Don't take this as gospel as I'm unqualified to give solid advice on this issue.
After reading what you've had to say, I can't see giving refunds to clients subject to them signing a non-disclosure agreement being a) legal b) ethical.
A non-disclosure agreement will only protect you from different aspects of your companies workings being discussed. It wont protect you from a review either honest or untrue (as far as I'm aware).
Obviously your clients will be entitled to a refund depending on payment method and depending on what you're selling/offering, there's laws to say consumers are entitled to a refund after X amount of days depending on these factors. Whether or not you wish to offer them a refund after this time frame subject to them signing an agreement pertaining to the fact that they wont talk about your brand or business in a negative way, is up to you and to be honest I'm not sure if that would even hold up legally.
The best way to deal with this (in my opinion) would be to respond to the social media post/review and explain your side of the story and that a refund was issues, apologise and offer to work with the client to fix anything they may be unhappy with. This will turn a negative review into something positive, show others you are about your clients and customers and are willing to fix things when they go wrong.
Negative feedback can be turned around and be used as a positive, I'd more likely choose a company with a negative feedback who have responded well over a company who has just positive feedback as it shows that they are more genuine/real/trustworthy.