You did not provide sufficient info.
But the fact that you have W95 on the C Drive would indicate that your PC is over 5 years old and either a PII or PIII?
If such is the case then you might want to check your HDD to see if it is failing?
Your motherboard BIOS may also need to be updated for XP.
As for why the D Drive is not recognized when you boot into W95 the reason is that your D Drive is in NTFS which is what XP runs on and W95 cannot view NTFS partition on the same Computer.
I would unplug the HDD and install a new HDD and start over with just XP.
Then plug back the old HDD and retrieve your data.
I have a PC which has recently started hanging on startup. It has Win 95 on the C: drive and Windows XP on the D: drive. Win 95 boots up OK, but it is an ancient installation and hasn't been used for ages and it has never been able to recognise the d: drive.
When I select XP from the OS menu, the machine immediately hangs and has to be switched off. Safe mode does the same.
I ran a setup repair on the XP installation with no result.
I installed a second copy of XP on the D: drive and it hangs at the same point (the installation never finished because the machine hung at the re-boot in the middle of the installation.)
I booted into the recovery console and ran fixboot and fixmbr and this made no difference. As far as I can tell with the limited tools available in the recovery console the D: drive is working and intact.
I am at a loss.
The fact that 2 different installations fail implies it is either hardware (but the disk behaved ok during setup and repair) or something that the XP installations have in common (e.g ntldr, but wouldn't the repair have fixed that?)
Any pointers as to what to try next would be appreciated.

Chowhound
Comic Vine
GameFAQs
GameSpot
Giant Bomb
TechRepublic