Hi, Louise,
If you purchase tickets for the Oban to Inverness leg of your journey ahead of time, you should be guaranteed a seat on that particular bus.
You definitely do not need to make a ferry reservation on either the Iona to Fionnphort or Craignure to Oban routes. Very few people will be traveling from Iona to Fionnphort at that time of the morning; CalMac uses their two largest ferries for the Craignure to Oban route. You won't have any trouble walking on.
Just did a quick check - CityLink (West Coast Motors) has a bus leaving Oban at 3:55 p.m., arriving Inverness at 7:45 p.m. (After May 21st., and not on Sunday) You can purchase your tickets ahead of time through their website. However, if you find another bus company that will get you there earlier, check their website to find out if you can purchase your tickets in advance. CityLink changed their schedule this year. Last year, the bus left Oban at 3:00 p.m., arriving Inverness at 6:45 p.m.
Best of luck!
Mike (auchterless)
p.s.: If you definitely have to be in Inverness before 8:00 p.m., you may want to consider a taxi. It's about three hours by road between the two towns. It won't be cheap, but if you're worried about cutting it too close, it may be your only option. Train won't work, as you'd have to travel to Glasgow to transfer.