There are so many things wrong with your method.
1. you are just writing to TMR0, not adding or subtract so you get a latency error
2. writing to TMR0 causes a 2 inst latency as well
3. you cant use a prescaler on TMR0 if you are going to write to it
I just put some code up on the forum that will do what you need, see this page;
https://www.electro-tech-online.com/threads/zezj-zero-error-zero-jitter-period-algorithm.100299/
I think all you need to do is put the value 444 in PERIOD at the top of the code to make a interrupt of 444 TMR0 ticks, if you want 444 actual uS you need to use a corrected value 444 * 4194304/4000000 = 465.