There's no built-in way to do that currently. We have an attribute system which can use macros but there's no macro defined to e.g. pull a custom property with a given name into the attribute.
There's a way to do it, but it requires you to define a small plugin. This plugin is then executed after you have synced with the relational model in the database and which will traverse all entities and for each entity all fields and create/update/remove the attribute on the fields (and entity definitions).
In the source code archive on the website we ship the sourcecode of the plugins we ship with the designer. You can start with these to get a feel of what a plugin looks like. More information about plugins: https://www.llblgen.com/Documentation/5.9/SDK/gui_implementingplugin.htm
To run a plugin on a given designer event, you have to bind it to a designer event, which can be defined to be done automatically. If you look at the source of the PluralToSingularConverterPlugin, you see it binds to a designer event in its definition object so the designer will run that plugin whenever that event arises.
Custom properties are stored in the OutputSettingValuesContainer of an object. If you open the designer and load your project, right click the project node and select Plugins -> Project inspector plugin. This will give you a raw tree of the object graph that represents the project. If you navigate to EntityModel -> Vertices (which are the entities, it's a graph) and then to an entity definition, you see the OutputSettingValues property. You can access that in a plugin and read/write its properties. Custom Properties are stored as name-value pairs. Fields have the same object.
What you want to maintain now for entities and fields are entries in the AttributesWithRules list in an object's OutputSettingValuesContainer. These are pairs of string-rule objects (you can leave rule as null). So basically when your plugin is ran, you traverse all entities, and for each entity all fields, grab for each object the Customproperty you need and create/update/remove the attribute definition in its AttributesWithRules list. After you've done that, you should see the attributes in the list of Additional Attributes for a field or entity in its editor, code generation tab.
Links to documentation you likely need:
Reference manual of designer classes: https://www.llblgen.com/Documentation/5.9/ReferenceManuals/Designer/index.html
OutputSettingValuesContainer class reference manual: https://www.llblgen.com/Documentation/5.9/ReferenceManuals/Designer/html/516BD3FB.htm
To obtain all entities in a project: https://www.llblgen.com/Documentation/5.9/ReferenceManuals/Designer/html/3383B12.htm
To obtain all fields in an entity (you can specify if you want to receive inherited fields as well): https://www.llblgen.com/Documentation/5.9/ReferenceManuals/Designer/html/DBB572A4.htm
there are more methods to your disposal of course, I just picked a few I think you might need.
After you've done all that, you can simply save your project and the attributes will be there, as well as generate code and the attributes should be generated into the code.
Be aware that the designer is a .net framework app, so a plugin has to be compiled for .net framework, not .net 6.
To test code out, e.g. how to obtain all entities in a project, you can use the ElementSearch panel in the designer. This is a nice little REPL to traverse the object graph and see what works: https://www.llblgen.com/Documentation/5.9/Designer/Functionality%20Reference/ElementSearch.htm