Not sure if I understand you correct.
With inherit from you mean, a launch related to a program. And a program can have several launches?
“ the program data sheet all launches inheriting from that program shall be displayed” you want to see the list of all launches related to that program?
If both assumptions are correct; then the following domain model should be in place
The page showing the details of the program should have a nested list, connected to the Launch entity OVER association Launch_Program.
The New button should create a launch object using the association as path to the Program object, so that the created launch object is directly associated to the current Program object. And thus only launches can be create for a particular program
Edit: added datasource selection listview