Okay, assuming that I mentioned my status as being L-1 just for the sake of argument,
In that case the only thing you could do is to say you were just inaccurate and did not pay attention to the question. Or did not realize your status is actually different from L-1.
(a) Since I shared the problem with all facts with company A, they know that my status got changed to H-1B through company B.
That is possible. However, that lies outside of the main question - whether you committed fraud or not while saying you were in L-1 status.
(b) Company A's immigration department was the one who asked me to try hard in getting company B's I-797, so I did not hide any facts from company A
Except the main thing - you said to them you were in L-1 status
(c) Why would company A take any action in reinstating H-1B COS, if I was still on L-1;
Because H-1 and L-1 are different statuses with different rules. H-1 is beneficial to them in some kind, and L-1 is beneficial to them in another kind. This comment also lies outside of the main question.
(d) Why would company A, in consultation with the attorney state on all multiple documents other than I-129 that "Status changed to H-1B, but he did not work for the petitioner"?
That could be company A's mistake, or lawyer's mistake. You could have provided them with two pieces of information.
1. You were in L-1 status
2. Status changed to H-1B, but he did not work for the petitioner
They truthfully put both into the forms. The first one was a misrepresentation, and the second one was not. A good lawyer would have notices a contradiction. However, all the info that comes from you is your responsibility, not theirs
(e) The attorney, filed every document from company A, plus I-797 from company B and even mentioned the EAC # from company B, etc
A good lawyer would have noticed a contradiction. Maybe you could sue the lawyer for the amount they charged (if they charged you, not the company).
If you did not mention to them your status was L-1, you need to prove that.
If you did mention your status was L-1, you need to prove you really believed so or you did it just because of being inaccurate, not because you wanted to get into status while being out-of-status.
The suspicion is you did that because you were out-of-status and did not want to pay the airline to go to your home country and get a visa there. That is why you decided to say you had L-1 status, to save money on the trip and still get into status.