|No such thing as a small change|
Somehow I had to giggle when I read your post... That's what comes from sleeping with the enemy. Weren't you courious when they asked you to sign the papers with blood? ;)
However, I'd have serious legal concerns about trying to deceive your client. What you try to do is, indeed, fraud. If they want you to port this to some other platform/system/language, you can't just pretend you do it. Do it, or leave it (my favorite choice), if your contract allows you to make that choice.
Update: BTW, wasn't it M$ who sued people for faking HTTP user agent strings? I think they acually won the case (a decision I can't understand).
Did they specify which system you must use when they gave you the contract?
Yes? Then you're framed -- since you actually didn't deliver.
No? Then they, AFAIB, cannot do anything about your choice. They might choose not to use your work, but they'll certainly have to pay for it, as long as it functionally provides what they ordered. If they insist on porting your work, they'd have to pay for that separately (since that would be another order/job).
Do you run the service? Is it a service you are paid to run? If yes, then it's just the typical manner of M$ in trying to put pressure on people, to force them into decisions they think are ok with them. Which is really none of their business. It's my eternal hope that the market one day will respond, and that such practice won't prevail. If they pay you for the service (not the implementation details), they can't touch you legally, I'd think.
Of course, the question is whether you'd want to meet M$ "lawyers" at high noon...