Why would a drive shaft disconnect from a gearbox Causing car to slip out of 5th in A Honda Civic EP1 1.4L?

I noticed one day that there was oil underneath where the driveshaft connects to the gearbox. I said it to the mechanic, he said it was ok. Few weeks later the car popped out of 5th eventually it would not stay in. Mechanic said I would need a new box. He installed one and instantly it still popped out of 5th. The mechanic said that where I bought the box had not reconditioned it properly. I drove the car because I had to. A few days later the car didn't pop out of fifth. I taught I may have mended itself. (oil got into all the gears). To my disappointment the car popped out of gear again about 1000 miles later. I brought the car to the garage that I bought the recon box from, I had contacted them the next day after the box was installed and informed them of it slipping out they wanted to see for themselves. The took the car and said that there was Very little oil left in the box as the driveshaft was loose. They refused to replace it. My mechanic then changed the oil in the box. It stopped slipping out for about 100 miles. I check under the car and oil was coming out from the driveshaft. I brought the car to another mechanic. He said it will need a new box. He said the driveshaft won't connect properly. He also said the driveshaft looks fine. Is there any other reason why my drive shaft would come out? Has this ever happened to anyone before? Is my original mechanic to blame? *also steering is heavy in the centre. Pretty sure it's a rusty steering rack or joint. Maybe wrong

I ran out of words and had to shorten it abit. Just want to say thank you to anyone that reads this or has any idea what has gone wrong

What the hell does the steering rack or joint have to do with the gear box. SMH
if the axles keeps coming out then check to see if the ring on the end of the axle is still there. On the end of the axle, the part that goes into the gear box, there's a metal ring that locks the axle in place to keep it from slipping out. Or either the rubber seal is not good or wrong size and is letting the oil leak out around the axle.