I just started trying to port a very large Delphi project to Lazarus, it's my first time really using it
Reading this makes me shiver...
You should not start with Lazarus by porting a large Delphi project, you will be very disappointed. Begin with simple projects in Lazarus and learn to feel comfortable within this new environment. Although it's similar to Delphi there are lots of differences, and you must know them, or at least have a feeling for them, before porting a project.
Port you large Delphi project in small steps. Begin with self-contained units and forms (Aboutbox?) which you can test independently.
As for the main question with open files: Yes, having too many files open, in particular in several instances of Lazarus, can be a problem - simply: don't do this. But... Within the same Lazarus instance it works. I installed the "packagetabs" in "Install/uninstall packages" - this removes the editor tabs and replaces them by a list at the left side so that you can have many files in view, and files are grouped in projects and packages.
I agree some caching mechanism in Lazarus. I think that this happens when lfm files are edited in the editor of the IDE - then it is not clear whether this change is persistent. Don't edit lfm files in the IDE. Always close the IDE, edit the lfm file in an external editor, and then open the IDE again.
You mention that you have files open also in Delphi. This sounds as if you are porting the same source files that you use in Delphi. No, don't do this either. Create a copy of the project for the porting process and open these in Lazarus, and open the original files only in Delphi (and still make sure to have an additional untouched backup!) When a form file is known to work in Delphi it will very probably not be loadable for Lazarus, and vice versa. And conversely, I've had cases when Delphi had problems with the UTF-8 coded sources of Lazarus.
And the most important question at last: Is your project ready to be ported at all? Which components are you using? Is there a Lazarus equivalent for each component? Do you know the difference between the same components in the Delphi and the Lazarus world? If there is no Lazarus component do you know how to work around? Test the workaround in Delphi first if possible, since it is of prime importance to have a working Delphi project all the time for comparison.