Hi,
Just a couple of random notes:

Doing IF TMR0=255 may not be the best. The reason for that is that your program may be off doing something else while TMR0 "transitions thru" 255, ie the program checks it and it's 254 next time it checks it's 0. TMR0 has overflowed but your program missed it. In THIS particular case your program is fairly "tight" so it likely runs faster than the increment rate of TMR0 but if/when you add stuff to the loop it may not work so well. Instead, check the TMR0IF, it'll get set when the timer overflows (even if you're not actually using interrupts) - just remember to clear it again.

I'm not sure TMR1 can cope with a frequency as high as 30MHz, check the electrical specifications in the datasheet.

/Henrik.