First something about exceptions.
The reasons you mentioned are exception details not the exception itself. If an operation fails (here, web method is going to do something, for example registering the user), there's only one exception (i.e RegistrationFailedException). All other things are it's information.
An Exception when occurs (I mean unhandled exceptions of course), no more exceptions can occur, so you should return the first and only unhandled exception with it's related information (event args).
Designing an Exception Schema is a good idea. Envelop exception and it's information in a single message according to your exception schema and return it to the user.