Product: Checking or savings account

on XX/XX/XXXX I setup an online bill pay to my XXXX credit card to be paid on XX/XX/XXXX. BofA did this as a draft check and the money was debited from my account on XX/XX/XXXX ( the date to be received ). I inadvertently transposed the XXXX XXXX XXXX, but did have the correct zip code. They mailed the check, but changed the zip code on the address. This caused it to be delivered to a different company who held the check for three weeks before cashing. When my payment was not received, I made contact on XX/XX/XXXX to inform BofA that my payment was not received, at that time it was discovered that it was sent to the wrong company. We then had to wait for it to be cashed and they didn't put a stop payment on it, which surprises me. We went through the process of calling the merchant to confirm it had not been received by them. They did not place a stop payment, but continued to wait for the merchant to fax a confirmation. After talking to my Credit card customer service, I found that the 3rd party payment center was no longer being used. They then wrote an email confirming that the check was not received by their XXXX bank. The check was cashed 3 weeks later and I immediately alerted BofA. They kept trying to contact the 3rd party after I told them numerous time that they were no longer the person of contact for XXXX. I gave them a phone and email of the Credit Card Manager ( XXXX XXXX ) at the XXXX XXXX XXXX XXXX. She was more than willing to give them the confirmation they needed. I made over 50 calls and spent over 10 hours on calls with BofA and finally got them to send me the affidavit needed directly. We walked it in to XXXX who sent it to XXXX by courier that day. XXXX XXXX completed it and faxed immediately the end of XXXX. They claimed they didn't get it, so XXXX sent it again and BofA finally confirmed via phone they received it on XX/XX/XXXX. 
During this time after making a complaint on their XXXX  page, a spammer tried to hack my account. I called to change the user name and instead they deleted my user id, which conveniently lost all my bill pay history over the 15 years. So I no longer received any messages as they are still doing this on my old user id. I also had bills setup to pay that they didn't pay. Over {$4000.00} in bills. I had no idea they deleted my user id with current bills to be paid until I got a late notice on XXXX XXXX XXXX. I spent XXXX hours on the phone with them and they refused to honor the guarantee for the late payments that I had to go on to individually and pay that day. 
It's now been 5 months since the payment was sent to the wrong person and almost 5 months since I alerted them and I still have not received my money back for a total of {$640.00}. I'm sure the company is a legitimate company and just waiting for someone to come back and say it wasn't suppose to go to them. I did my own research and found that it's a charitable company that deposits donations through a lock box at XXXX XXXX. I even called their bank and they were helpful but told me they couldn't do anything that Bank of America was supposed to be representing me and helping me to get my money back. The check was stamped on the back as " Deposit for the benefit of the named payee '' and they held it for 3 weeks which tells me they weren't sure where to credit it. Bank of America has had this information since early XXXX, so they knew that it went to the wrong company, but continued to make me wait. During my 50 plus calls, I was transferred dozens of times, thrown back into the que on purpose and hung up on. I have been with Bank of America over 23 years and finally decided to remove all my money to a new bank. I'm having to keep a {$1500.00} balance there in order to keep from having a service fee monthly until I get my money back. After I complained about them not doing anything and demanded a provisional credit so that I could pay my card off and quite accruing interest on something I tried to pay off that XXXX, they gave it to me 2 months later and 30 days after that they took it back, causing my balance to fall below the minimum balance and charged a fee for that as well. This whole process has cost me a LOT of time and money and I still have no resolution. I started the whole process by alerting them nearly 5 months ago. This is unethical and a terrible way to do business. 
I just want to get my {$640.00} back and be done with this institution. 
Thank you in advance for your help.