PRU only works after login. It fails if program is executed through a startup script.

I am using the Rev C BeagleBone Black and the default debian image that it ships with from Element14. I have a program that utilizes the PRU for ultrasonic readings. My issue is this: If I ssh through USB, login as root or default user, and execute the program, it works perfectly (I have all the overlays loaded on startup). However, if I try to execute the program through a startup script, it fails as soon as it reaches the first line where data is read from the PRU, leading me to believe that this is the issue.

Are there any issues with trying to use a PRU on startup that could be causing this?

If I have explained anything poorly, or more information is needed, please let me know. This is really bugging me, and I would appreciate any advice.

What I have tried so far:

Manually executing modprobe uio_pruss in the startup script
An old solution presented here:!topic/beagleboard/gqCjxh4uZi0

Just a dumb thought from a BeagleBoard newbie: Have you tried adding something that sleeps a while to your startup script? Maybe sleep for 30 seconds just to be extra sure. If that fixes it, then you know something and can look into shortening the time.

It might help if we knew what the "startup script" was doing, and where it
you installed it - i.e. where and when it is being invoked. Also what user
you executing it as in the "startup script". Additionally have you looked at
the logs to see if there are any error messages?