Hi, Suzanne,
Several things which may help you in your travels - first of all, getting around Skye without a car is a challenge, but not an insurmountable one. If you are taking the ferry from Mallaig to Armadale, you may be able to take the Stagecoach number 52 bus to Broadford, and transfer to the CityLink 915 bus to take you to Portree. However, the ferry and bus schedules do not always mesh, so you may be stuck for a while in either Armadale or Broadford. Not that there's anything wrong with that! However, there's not a whole lot to do in either location while you're waiting.
If you're taking the train from Glasgow to Mallaig, you may arrive too late in the day to be able to make the bus connection out of Armadale. In that case, having an overnight in Mallaig would be necessary, then taking the first ferry out in the morning.
On your return journey, the Caledonian Sleeper does not travel to Inverness. It goes straight down to Glasgow, then on to London.
There are two separate companies which operate boat trips out of the village of Elgol: Bella Jane and Misty Isle. Were you planning to visit Loch Coruisk, or do a full or part day tour with AquaXplore (Bella Jane)? In either case, if you're staying in Portree, you'd need to take a taxi to Elgol, as the Stagecoach 55 bus from Broadford won't get you to Elgol in time. However, if you're finished your voyage by 4:25, you could take the 55 bus back to Broadford, and pick up the CityLink bus from there. Again, if you're stuck in Elgol, there's not a whole lot to do, except for gazing at the gorgeous view up Loch Scavaig, or having a cuppa at the Elgol shop.
If the ferries from Mallaig aren't running (and they don't often cancel - I've crossed in a gale!), your only option would be to either wait a day in Mallaig, or take the train or bus to Fort William, bus to Inverness, and train to Kyle of Lochalsh or bus to Portree.
Finally (for now), if you're travelling in April, you don't need to worry about midges. They don't usually make an appearance until mid-May!
Have a wonderful time in Scotland! If you're thinking about hiring a car, see Stuart (isn31c)'s advice above.
Best wishes, and Happy New Year!
Mike (Auchterless)