Thank you for sharing these details.
After reviewing the setup, here is the workaround that you'll need:
1. The default 'Top Level Pages' field will show all the 'Site Pages' posts from the repeatable group. Below this field, you can add a 'select' type generic field, that will get the options programmatically from a custom shortcode.
This shortcode will get the current project post's ID and will get all its related 'Site Pages' posts using the "toolset_get_related_posts" function:
https://toolset.com/documentation/customizing-sites-using-php/post-relationships-api/#toolset_get_related_posts
The post titles and IDs of these posts will need to be output by the custom shortcode in this JSON format:
{"value": "Post 1 ID", "label": "Post 1 Title"}, {"value": "Post 2 ID", "label": "Post 2 Title"}, {"value": "Post 3 ID", "label": "Post 3 Title"}...
Note: An example of a custom shortcode that generates the generic field options can be found in this reply.
https://toolset.com/forums/topic/split-publishing-related-many-to-many-posts/#post-1215323
2. After the generic select field is correctly showing the related 'Site Pages' posts as options, you can include some custom JS code to detect changes in this generic select field and automatically selects the same option in the default 'Top Level Pages' field.
As a result, when the form will be submitted, the post selected in the generic field and the 'Top Level Pages' field will be set as the parent post.
You can also include some custom CSS code in the form to hide the default 'Top Level Pages' field so that the visitors can't change it directly.
I hope this helps and please let me know if you need any further assistance around this.