Keep getting logged out when navigating between pages.

First off, I'm using 2.4.X. I want to upgrade to 3.X, but other tasks are priority.

After I log in as admin or as one of the users in a group (both with permission to access several page), I'm redirected to the correct page. But once I try and click a link to another page (with the same permissions set) it redirects me to the login page with "/Security/login?BackURL=..." in the URL.

I've thought of a few things (none of which I can answer):

1) Does it have something to do with the structure of the pages?
2) Are login session not being saved correctly?
3) Are login session only for the one page you log in to go to and not others you also have permission to view?

I've tried:

1) Check the permissions on the /tmp folder that stores sessions and checking they're actually getting saved there in php.ini.
2) Double & triple checked the permission are correct on those pages.
3) Given the security group full admin access (not that it should matter since login in as admin has the same problem).
4) Clearing my cache (however the same problem effects users on other computers).

A side note: I had been getting some unusual errors while using the CMS too. This includes missing files that SilverStripe is looking for in different places to where they normally are. I've ended up keeping multiple copies of the editor.css file in different places to keep it working (when the file was missing, an error would occur saying "Please log in and try again" (or similar) and I was logged out. Not sure if these problems were linked though.