Answers to your questions:
I. Breakpoints are grayed out when breakpoint information is not available. The compiler must generate the necessary information for the debugger. For this:
It is necessary to enable the generation of this debugging information in the project settings: Project options/Building/Delphi Compiler/Linking/Debug information.
Enable Projects/Your Project/Build Configurations/Debug.
Conditional compilation directives should be checked - they can disable part or all of the file from generating information for the {$D-} debugger.
It is necessary to rebuild the project: Projects/Your Project/Build.
The *.rsm files will be created.
Now you can debug.
II. The procedure is simple: If there is no debug information, there is no breakpoint.
III. You won't have any breakpoints in gray.
PS. It is necessary to build a project with the option of adding debugging information enabled. She won't add herself! Only then will the project be fully ready for debugging.
When creating a finished project, debugging information is deleted from it (Release mode).