A few thoughts about your questions...
First, Marketo form fills are tracked using the email address as the record identifier. If a person fills out a form with a different email address than an invite email was sent to, it would be tracked on a different record. If the email address is new to your database, it will create a new record. If the email address exists, it will be a new activity in the existing record with the same email address. Your registered campaign will catch everyone who fills out the registration form in a Fills Out Form trigger if the correct form / landing page are used as trigger constraints and there is no additional filter that someone has to be a member of the program or received the invite email to qualify for the campaign.
For email forwarding, this is tricky in Marketo because if a new recipient clicks a link in a forwarded email without using the "forward to a friend" functionality, Marketo will cookie the new user as the original recipient. All future activity of the new recipient will be tied to that user. If that person then fills out a form with a new email address, their activity will be tied to a new record with the email address inputted in the Marketo form fill.
For your program tracking on this particular event, you can identify form fills from people who were not sent an invite by creating a static list and including a flow step in your registration campaign that adds someone to the static list if they do not have the program status set in the send email campaign. Your next flow step would update their program status to Registered. Program status tracking is dependent on what statuses have been created for the channel you are using, so you may have limitations on what statuses you can assign. With that said, I would recommend using statuses for Invited, Registered, Attended and No Show.
There's a lot to unpack here, but hopefully this information is helpful!
... View more