Product: Checking or savings account

I have made complaints about Citi bank since 2018 about my sons Unemployment direct deposit that was allowed to get deposited into my closed account 6 months after being closed. I brought up that the bank lied about have the deposit repeatedly claiming the funds were returned to its sender and only after the GDOL demanded proof of the return did they admit to having the deposit. Only then did they give explanation as to how the owner could get the funds since the deposit was being investigated as fraud. My son sent a copy of his state ID to the company, however they claimed not to recieve the documents. Then Citi refused to allow another letter to be sent and demanded my son go XXXX hours away to XXXX to verify his identity in person at the branch and gave me an address. XXXX days later my son called upset asking if I had sent him to the wrong branch. I called Citi again and spoke to the representative who said no it was the location but that location was closed due to covid, I demanded to know why the bank would send someone to a closed location and asked for XXXX that was opened. There were no branches open in georgia or Florida the nearest one was XXXX states away and the travel would cost more than the Check. So we waited until covid was coming to an end and after making my complaint to you I had received a response saying we could have the funds released if both me and my son went to an open breach and showed proof of identity. The only branch was again XXXX hours away in Florida but we drove to the branch, however when we arrived and spoke to a representative we were informed that even after showing proof of identity the funds would not be available for disbursement, I would need to call the fraud department for an explanation. I called and the representative said that showing proof of XXXX would not be proof that the deposit wasn't fraudulent, that the GDOL would need to have a judge issue a warrant for the funds to be returned to the sender or given to the listed name on deposit. 
2 years later I reissued the same complaint and Citi 's response now is that due to the check being written by the government they can not allow the listed owner to recieve his funds. 
Citi bank has no suspension of fraud, they have been shown that the deposits named owner is who he claims to be, shown a government ID and walking into a branch without anyone calling the law. They can not claim that the GDOL is not an actually business because they are a government agency. 
I need to understand what legal stance Citi bank could even pretend to have to keep the funds for fraud. I want to know why Citi is still allowed to operate knowing that it's representatives lied about funds being deposited, removed the funds from the deposit account into their personal account after the owner sent Proof of identity through mail to them, then after having undeniable proof that the owner was indeed who he claimed to be, still denied his money. What law or rule in banking allows a bank that has no valid suspension of fraud to continue to hold the deposit, with claims that based on who sent the funds no resolution would be made with out a judge issuing a warrant to return funds.