This has worked for me in those situations:
1 - You start modeling each building on its own BldgA, BldgB,… file, with its individual Archicad levels (B02, B01, 00, 01, 02,…) as if none of the other buildings existed or mattered (during the design process, with better surveys and design changes, this individual-building story-levels-setup is likely to change). This file will produce 'buildng level' drawings, such as stairs plans and sections, facades, etc.
2 - You start modeling the site elements (sidewalks-driveways-utilities-shared podium or basement parking levels, bridges between buildings.) on the Site file (with better surveys, these Site elements and levels will change too). This file will produce 'site level' drawings, including your block plans, block elevations if needed, etc.
3 - You decide which story of each building will show in each of the Site (block) plans. On the story names in Story Settings on the Site file itself (preferably) or on a post-it note somewhere, you write down that structure. You'll end up with something like: S00_A00-B00-C01; S01_A01-B01-C02; etc. There will be 'unconnected' building stories, which you can handle as a mezzanine in a house plan (it is a special, partial plan, which will not necessarily appear on a block plan; otherwise it will appear on a block plan which is blank except for this building story). So with different ground level grade and story heights in each building you will end up getting things like S05_A02-B04-C01.
4 - You publish story modules from each building file into its 'story modules' folder ('A bldg MODs'), and once in the project's lifetime place each of those modules onto the site file and elevate it up or down as needed. When the site file or building surveys or designs change, you may need to adjust the Bldg Story Settings story heights/elevations, and on the Site file elevate the placed modules up or down accordingly.
5 - This works with conventional buildings, where walls and doors in the Bldg files can be shown symbolic. Your Site floor plans will display the correct information for each building, and you don't need to care about cutting planes for these elements. Otherwise things can get trickier, but usually made to work with some thought —for automatic to work everywhere without a thought, one would need the (non-existent) possibility of making 'breaks' in the cutting plane.
6 - Because on the Layer Combination for the module publishing View used for the module Publisher on the Bldg file you decide the elements from which layers will get sent into the Site file, some layers can contain different information on the Site and Bldg files, as required for Bldg and Site views. This simplifies layer structure, views setup.
7 - You may end up needing 'lower level' modules (bathroom, kitchen, office layouts, equipment) generated in a third-level module-production file and getting published, stored and placed onto each of the buildings. For both these and the Bldg story modules you need to decide whether you need to bring in nested modules —nested modules with all their elements will be brought if those nested modules are placed on a layer visible in the module publishing layer combination, even if the elements themselves are not visible in that layer combination; in the Publisher setup options you typically want to check 'break nested modules', and always want to uncheck 'bring visible elements from other stories'.
8 - By default, unless there is some very good reason for proceeding otherwise, all modules get placed on the Archicad layer; a good reason for proceeding otherwise would be for example in multi-unit buildings where you want to 'turn off' unit interiors in ceiling, building, finish plans; in that case you place those modules on a 'Unit MODs' layer, which is hidden in Bldg finish/ceiling/etc. plans, but may show in Bldg 3D views, enlarged plans and sections. Out-of-control nested modules can result in overlapping duplicate information getting created on the host file with each publish-update, so you want to understand what you are doing; screwups soon become noticeable, but changing file structures, layer combos, etc., in multi-file projects is not pretty so whenever possible it is best to think things through first.
9 - You don't want to insert stories in module-publishing files (because the host file will bring in the information contained in what it internally identifies as coming from say AC Story 4 of Bldg02.pln); the moment a story gets inserted in Bldg02.pln under story 4, the host file will be showing the zero elements in the empty story 4 of the module file for what has now become story 5) . If you absolutely need to, you will need to recreate module publishing views, modules, and place again, and/or redirect links from the host file.