I have never written any macros to do with loading projects, so I do not know my way around that code yet. I did a little digging, and here are some things I found.
The macro called when you edit a project is "project_edit". The way it is called (using "execute") is likely why the macro recording did not work past that point. It is found, naturally enough, in the "project.e" file. Its entry in the help file cross-references a macro called "project_add_file", which looks like the macro you need to add files to a project. To use it you would have to run through all the files in the directories you wanted to add to the project and call it on each file. I believe f_match is what you need to find the files in a directory. As best I can tell, that would be the only way to do this using documented macros, but on first look it would seem fairly straightforward to write a macro to do it that way.
However, the toolbar that SE uses itself to edit projects has lots more functionality, such as adding an entire folder or tree to a project in one go, which is more like what you need. The toolbar is in ptoolbar.e, and the code that adds folders or trees seems to be projecttbAddTree / projecttbAddFolder (which display the forms) and _OnUpdate_projecttbAddFolder / _OnUpdate_projecttbAddTree, which seem to do the real work. So it might be possible to use the code from _OnUpdate_projecttbAddFolder / _OnUpdate_projecttbAddTree as a template for what you want to do. But it is complicated code, and tied up with how SE does forms and how its GUI works, so probably not for a beginner at SE macros. I am not sure I would want to try that myself as I have never written forms/GUI macros and am not really confident I know exactly how they work. It is certainly a good idea to have a look at that code for ideas though, such as what error checks are done.