a) You are asking to create a Message class from in SE91 from inside a BADI implementation . I do not know if there is a released function module to that. Proabably you need to debug SE91 to see how an entry into T100 is created .Iam not sure if this is a good design as BADI's are not for this purpose.
b) Instead if your aim is Traceability why can't you build a report which first extracts all the User defined Message classes (Message classes starting with Y and Z) . The information is available in T100 table . After that if you need to find the Usability of the message where it has been used(in which Y/Zprogram) then you may copy the SAP functionality of Where used list Button (Some dubugging required) for individual messages .
c) If your problem is that there are hard coded message all around your system in different BADI's then it is a poor practice which has been followed and you need to create message class through SE91 and then transport the messages and change all the BADI''s to use the message from the class.
Anjan