So as I understand it, you sent your money directly to FNM instead of having an attorney hold it in escrow until you had a signed deed?. If you did give the attorney your money and that attorney sent it to FNM then the attorney needs to handle it. Assuming you didn't escrow the money, the $500 or so fee for the attorney to escrow your money and handle everything would have been worth paying.
I agree, they have no right to hold back the deed if all the terms have been met, but you likely will have to let a court decide who is at fault. Would have been much easier with your money in escrow. They would have to chase you down instead of you chasing them down. Suing FNM or taking them to court surely will not be an easy task.
Good luck.