To read fault codes requires a diagnostic computer connected to the bike. BMUU dealers have a device called GT-1, and us consumers can buy e device known as a GS-911, which comes in two models basic, and pro. The difference being that the basic is limited to connecting to 10 different machines by storing VIN numbers.
Both the GT-1 and the GS-911 connect to the diagnostic port under your seat and can read the fault codes on assorted controllers, and some of their inputs.
To read off fault codes, if any, will require a dealer; a friendly tosser with the PRO version of the GS-911; or a friendly tosser who doesn't mind using up one of his VINs for you.
My guess is that you want to leave the dealer to a very last option? So you would need a volunteer from these here parts to step up and help you out with that.
Another option is to check the spark plugs, but I see that you already have and that had short term benefits. That could be a coil breaking down. I had one once that would work fine immediately after I had moved it around a little bit, then would start to play up again. The symptoms were a very slightly reduced power output and responsiveness and lower fuel consumption, but would really only be noticeable after I had reseated the coil, where the whole engine would feel much more responsive and lively. I note that when you changed the plugs they were sooty and damaged. The first may be pointing to an issue with one or more coils, the second is worrying: Just how did it get damaged in the cylinder head? Coils are difficult to diagnose for faults. Generally if they have a problem, it only manifests itself under engine load. The normal course of action is to replace and see if it gets better, which is not cheap. Perhaps you can enlist the help of your brother and swap coils, one at a time, too see if the problem transfers to his bike? Be aware that the upper coils are swappable left/right, but not the lower ones.