I'm particularly concerned about this quote from the OP:
> My performance never dropped, only my communication. I never stopped coding.
Specifically, I'm concerned the OP continued to write and submit code while also failing to respond to communications from the employer, without a prior explanation. As a remote employee, communication is a key part of performance. Unfortunately, if the OP was submitting code during this episode it would have signaled that they were active and working, yet refusing to communicate. Without an explanation (which was only provided later), this would easily be grounds for dismissal of a remote employee.
We don't know all the details, but it appears the OP only communicated the situation after seeing a scheduled meeting with HR, which they suspect was related to a planned firing:
> I suspected they were going to fire me (scheduled 1am call with HR) and I've decided to share with them 3 days ago my Bipolar Diagnosis.
If the OP waited until the firing meeting with HR to communicate any of these issues, it was too late. Who would fault a company for terminating a remote employee who wasn't responding to communication? If they had requested reasonable accommodations or a leave of absence prior to the suspected firing meeting, that would be a different story. However, it appears the company had no idea that the employee was in need of these accommodations or a leave of absence for the period of time leading up to these events, even though the employee continued to submit code.
The OP likely has limited time and energy at the moment. Adding an uphill legal battle which is unlikely to produce a positive outcome is not going to help that situation. It may very well be best to cut losses, focus on healing, and move on.