I think the trick you are missing with U++ .sch files is that they have header part and code part. Header part, e.g.:
#define SCHEMADIALECT <PostgreSQL/PostgreSQLSchema.h>
#define MODEL <MyApp/MyApp.sch>
#include "Sql/sch_header.h"
#undef MODEL
you put into header and then use that header in many .cpp files. In one of .cpp though, you add "definition" part:
#define MODEL <NosCore/Nos.sch>
#include <Sql/sch_source.h>
#include <Sql/sch_schema.h>
#undef MODEL
As for layouts, you can have any number of layouts in layout file and any number of layout files in your project.
In my large apps, I can easily have 30 layouts in single .lay file and 5 such .lay files in single package, app is then like 5 packages. Yes, 500-1000 dialogs per productivity app is normal...
You can also have multiple schema files, usually when dealing with more than single database. (But you need to be aware about name clashes and e.g. use namespaces).