Like the idiot I am I linked the wrong steam account to my battle net and got the data for it on that account but I want it to be on my main account. I tried to unlink it and link my main steam account via the settings but my main data doesn't show up instead, it shows some other data instead of my own. So basically my data is linked to the other steam account instead of my main and I can't seem to get it onto my main. Is there any way I could get link my account to my main steam account with all the data?
If by linked you mean you performed the PC Move between Battle.net and Steam then unfortunately there is nothing that can be done. If you moved your valid Battle.net to the wrong Steam account then that data is now permanently stuck on that Steam account. Once an account has been used in the PC Move process it cannot be used in subsequent Move attempts. So your good Battle.net is given one, and only one opportunity of moving D2 licenses and game progress to Steam. And it appears you have used that one opportunity.