Here's an idea to try. It is based on how the BIOS knows what is where for booting. When you go to specify in BIOS Setup the order of devices to boot from, it shows you their names so you can choose. But internally when you make a choice, it does NOT go by the names, it uses the hardware port address. Now, Windows associates with those ports the device DRIVERS used to access them. So MAYBE your laptop's two versions of Windows (on different storage devices) still have the driver for the optical drive associated with the port where it used to be and tries to use that to access the SSD that is mounted there now, BUT doing it that way may generate an error so it can't boot from there.
So, try this sequence.
- With your system running under Win XP from the HDD and both the HDD and the SSD installed, go into Device Manager. Look for the drivers for your old optical drive unit. Uninstall and Delete that device. Similarly, look for the drivers for that SSD unit and remove them, too. Shut down.
- Disconnect the SSD. Boot up and it all should work normally, except of course that you can't use the disconnected SSD. This will force Windows to recognize there is nothing on that port.
- Shut down. Re-connect the SSD. Boot up into XP again, and it should find the "new" device connected where it is, and load the proper device driver for that device on that port. Now you'll have access to the SSD from XP. If you check in Device Manager you should see it there but no CDROM optical drive anywhere.
- Reboot directly into BIOS Setup. Adjust your Boot Priority sequence to boot from HDD first, and SSD second, and possibly from a USB device. Save these settings and back out to reboot into XP. Shut down.
At this point you have XP re-adjusted to the new normal, and the mobo BIOS knows a bit about what's where, and knows there are at least two valid boot devices to try. However, the driver changes made to the Windows Registry are in the Registry on the HDD for XP. They are NOT in the Registry files on the SSD for Win 8. We need to fix those. You say you can boot from the SSD if you attach it via an adapter cable to a USB port. So we'll do it that way to get access to the Win 8 Registry files and adjust them.
- Connect the SSD to your laptop via that USB connection. Boot into Win8 from there. Again, do like step 1 above: go into Device Manager. Look for the drivers for your old optical drive unit. Uninstall and Delete that device. Do NOT remove the drivers for the SSD! Shut down.
- You cannot disconnect the SSD and then boot from Win 8 without it, so skip Step 2 above. Reboot into Win 8 and check in Disk Manager that there is no CDROM unit, but the SSD still appears with a proper driver. Back out and shut down.
- Move the SSD back to the optical drive tray and connect it. Boot up, intervening to ensure it boots from that SSD unit. Hopefully since the BIOS knows how to get to that unit on that port, AND Win 8 knows that there is no CDROM device to use, it will detect that the item on that port is the SSD and use that device driver. So it all does actually boot from there. If that works, you have a solution.
- Last step: IF you want to, reboot into BIOS Setup and alter your Boot Sequence to whatever you want, then save and reboot.