I don't understand why you went with a single licence valid for all platforms.
Clearly each client is a different product on each platform, even if it might have the same core functionality.
I don't know what the original price was and I understand why he is mad, but that was a poor business decision. If you overpromise that's kind of on you, plenty of companies have been burned by such behavior.