I think they are almost the same.
老家 is rather informal. It only exist in spoken Chinese. Similar example will be: 父亲(formal - father), 老爸(informal - dad).
There is still slight difference between 故乡 and 家乡. You can always split Chinese words into characters to analyze them.
故乡. 故 means "old". 故乡 emphasizes the place WAS your home. You had good memories there. But now, you do not live there anymore.
家乡. 家 means "home". 家乡 emphasizes the home. The place is still your home. Your parents might still live there. When you go back, you still feel home. It could be the situation that you are working in another province. But you still plan to go back to your 家乡 after you finish this work.