The configurable functions should be next to IsSpellInstant instead of being spread around. The indention is kind of messed up, sometimes too many spaces, some times inconsistent space where it should be.
You could also cache GetTriggerUnit() and the rest, specially when the lines are quite long, not only it is faster (in terms of speed) but also clearer to see and you don't risk surpassing the character limit on a line. This one is only a minor problem.
This template enables pretty good possiblities to explore different types of spell reflections. It's almost good for approval.