i found the problem...

I re-checked my test board could find a problem... so i decided i must have a dead crystal so i went to unsolder it... and then i noticed that the solder created a line half way between the crystal pin and the pic's socket pin...

So it turns out that i had a hairline crack in the copper track that, quite frankly was so small that i couldn't see it dispite looking very closely...

So, theirs one for the FAQ... when using stripboard, run solder down the lines for the oscilator...

Also, it's worth noting that on my prototype plug board I tried a 24.576MHz crystal which worked too... even though my 16f877A I/P is rated at 20MHz... so thats a very nice 22% overclock...

Thanks to everyone for the help, especially Mel...