Your hard drive partition is most likely corrupted. When Linux detects a partition is corrupted it is automatically re-mounted as read-only which is most likely what's happening here.
Most linux distributions run a file system check (fsck) command on boot to check for and repair filesystem and partition errors. A possible but unlikely reason for this problem is that you have somehow disabled this automatic file system checking.
Like NoMad suggested, try running (as root) fsck.ext4 -f -n /dev/sda5 to see what the level of file system corruption is on your partition (note: just because there's corruption doesn't mean everything breaks, I got 7 unfixed errors and 2 unoptimized warnings, with a warning that the filesystem still has errors, but everything still works fine.)
The output you're seeing on the terminal screen can be accessed with the dmesg command (may require sudo). Try this:
dmesg | grep -B 5 -A 5 filesystem
Preferably after you encounter the issue. This should show you when your filesystem got mounted as read-only and hopefully the exact reason why.
If it really is a corrupted filesystem then there are many possible causes for it. Chief among them would be that your hard drive is failing (especially if this happened between formats).
To check if your hard drive is failing I suggest you run S.M.A.R.T tests. To do this you need to install smartmontools, alternatively you can use a graphical front-end for smart tests like GSmartControl but below is a guide for how to use smartmontools to test.
Then run (as root)
smartctl -i /dev/sda
(where sda is the hard drive you want to test. In your specific question that would be /dev/sda) to find out if the hard drive supports SMART (the bottom line of this output).
If support is available but not enabled, enable it.
smartctl -s on /dev/sda
If support is available and enabled, then run a smart test.
smartctl -t long /dev/sda
The output will tell you to wait until a specific time to check and see the results, it will look like this:
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Tue Jan 14 13:54:05 2020
And after the mentioned time you run
smartctl -l selftest /dev/sda
smartctl -a /dev/sda
smartctl -H /dev/sda
And see what can be gleaned from the results. This should tell you if your hard drive is failing or not.
If even a single test fails, your drive is failing and you should back up your data and try to find a replacement. There's no use switching to windows either it'd just give you a BSOD.
If your hard drive is fine and your fsck comes out clean, then I'm not entirely sure what is the likeliest cause.