I am one of these "Hard-Gainers" I eat about 4000 cal a day on a relaxed day (easy workout or only light training) and about 5000 on a Ball so Hard day or day after. It's true that some of us have a hard time gaining. I mean hell, I've been eating like this for a year and only gained about 15-20 lbs. But I'm proof that if you eat enough and lift (opposed to just running and PK, or all cardio work) you can gain weight. By the way. The last year I ran in 4 over 10+ mile races.
I personally wont endorse the G.O.M.A.D. diet, I think I have an issue with lactose build up. My legs feel real heavy when I have too much diary. But sweet potato's, pasta, coconut milk, chicken breast, fish and certain cuts of beef are good for you and not that expensive if shopped right. Also fresh veggies are a must for any diet.
Another important thing to remember is that the 2000 cal a day % system you see on every nutritional info isn't right for you. If something says 10%, assume it means 5 or less % for you. You need more protein, fat, carbs, vitamins and even sodium then the average person. And a multi vitamin is probably a good idea
In conclusion, if you don't want to take a nap after EVERY meal (5-6 a day), you're not eating enough. And if your not eating at least an extra 100 calories every hour between meals, you're not eating enough. I suggest buying some big packs of instant noodles and a bunch of granola bars and packs of peanuts.
Now really in conclusion. Eat more. Much more