Q:
When I add setuid bits to my program, it no longer starts up and syslog doesn't seem to provide any useful information, either (True?).
A:
I am not quite certain what is preventing this. However, it is easy to defeat: replace your program with a two line shell script that, in turn, runs your program. Example, maybe MyProgram (setuid) gets renamed to MyProgram_, and MyProgram (not setuid) becomes the script:
#!/bin/bash
dir=$(dirname "$0")
exec "${dir}"/MyProgram_ "$@"