ok, I see the issue. Basically you're not using your Primary Key's as the relation between two tables. For example;
CustCategory table has a primary key (PK_recordID) which has a field (recordID). that's good.
CustCategory then relates to CustAttrib table, using the local "code" field.
CustAttrib also has a primary key, and recordID field, but does not use this RecordId as the row identifier. In other words the "Primary key" of CustAttrib does not match the Foreign Key of CustCategory. (or vice versa).
Typically when doing the relations in the dictionary, the primary key of one table matches the foreign key in another. this is the so-called "3rd normal form", and it is the layout the wizard is expecting.
the solution, and the reason it worked after you re-did it manually, is to set the "Unique Key" of the Lookup browse to be say CUSCAT:K_categorycode instead of CUSCAT:PK_recordid.
In other words, the key used in the Lookup Browse matches the key that you ultimately use to relate that table to other parent tables.
Cheers
Bruce