Php in "regions" without php filter I've heard that using the php filter is dangerous. Something about having php in databases being a bad practice. I use it in blocks quite a bit and want to move away from that.

I have a lot of page template files so I need a replacement for regions/module_invoke blocks. I tried using an include but dealing with paths was tedious. Is that the only option or is there something easier?
Includes or requires is likely your best bet here, why are they tedious? If the includes are within the same theme/template files directory you needn't use absolute paths. 

If you cannot use relative paths then you can use getcwd() to get the current path/working directory of a file, or use drupal_get_path() to get the path to a theme or module file.