I have seen this before when sending email via Gmail's SMTP server and the issue seems to be the message ends up containing a header 'Sender' that Thunderbird ignores whilst other clients show it to the user - which is where the 'On Behalf Of' comes from - I think this is your issue?
To solve this I add the email to the Gmail account first using the 'Add another email address you own' option. In the part where you choose SMTP server (either Google's or your own) just choose your own but actually add Google's one instead.
Once this is done the emails no longer have the 'On Behalf Of' attached to them when sent through Gmail's SMTP server.
There is a blog post about it here: