The code operates only on mail items i.e. not other types of object than could be sent.
As we haven't seen your messages, and you referred to 'item.UserProperties("A1")', the code cycles through item.UserProperties to establish if there is a property 'A1', which would suggest that it is a message to be processed. If there are no user properties the code jumps to lbl_Exit which marks the end of the code. If there is an 'A1' property then its value is added to the start of the message.The code does not look at recipients.
Without access to your e-mail, this is untested.
I still think it would make more sense to use a document attachment with content controls that the users could complete and return, then you wouldn't have to worry about providing code and it would be a simple matter to interrogate the forms on their return.