For the Topklasse games I was thinking of Capelle for the Saturday and AFC for the Sunday but I'm open to other options
Will think about a Bundesliga game, how cheap/quick would a train be from say Rotterdam to Dortmund? Just a shame St. Pauli is too far....
Capelle and AFC are quite boring matches, they won't attract a crowd over a few hundred...
Like Wally said there's Rijnsburg-Katwijk in the Saturday Topklasse, the distance between these two grounds is just a few kilometres, a real derby! If I was you I'd always prefer that one over for example Capelle...
Then take the Groesbeek-derby on Sunday and you've got by far the most interesting Topklasse games of the weekend!
On Friday I'd go for Cambuur-Zwolle, a kind of derby, Cambuur has got fanatic fans and Zwolle will certainly sell out their visitor tickets, disadvantage is Leeuwarden is quite far away in the North.
Also Sparta-MVV isn't bad.
As for the train-prices, from the west that's quite expensive without discounts... a return from Amsterdam or Rotterdam to Venlo costs about €40, then in Germany you can take an NRW-state ticket (all big places lie in NRW) which costs about €25 for one person.
Like Slag said don't worry about train times between Amsterdam-Rotterdam-Utrecht-Eindhoven these are 24/7 trains so you'll always get back when you stay in one of these cities. By the way Rotterdam isn't really interesting for tourists I think, visiting one day is enough.
Talking about German games, the most interesting one in my opinion takes place in Düsseldorf (also NRW). Because of the Eurovision song contest they'll play in a temporary stadium which exists only for three matches, so it's unique to visit. One of these games, at 8 May, is against Alemannia Aachen which are local rivals, so the atmosphere will be good. Tickets will be difficult but I can keep an eye on that.
If you want to know anything else just ask
PS: the kickoff times at footballfans aren't reliable, I'd always check it in advance, best is teletekst.nos.nl
894 & 896 for Hoofdklasse, 833 for Topklasse and 829 for Jupiler League.