Tonight as in a couple months later ... Anyway, your bug is that it is top level
That is to say that
echo 'kernel:'$(printf %d ``revision``)
is what you need. tickParse "$kernel" won't take the contents of kernel, then reflectively assign them back to a superstructure of kernel. Alas, no, it just takes the contents of the variable and then evals it, thus assigning it to the global space.
I was able to debug this by doing this:
...
tickParse "$kernel"
set
echo 'kernel:'$(printf %d ``revision``)
...
The output of set gave me the insight here ... I didn't know it immediately either. How tricky. Hope this helps!!