(My answer is based on Spirit Digital 328 Users Guide, I do not have the device)
Related to Control Surface functionality (so, no automation writing, SysEx, recall, etc).
Spirit does not support MackieControl, the only common bi-directional protocol supported by Sonar. ACT MIDI and Generic Surface are unidirectional (they are not sending values back to the controller). There is only one known way to make that work, my AZ Controller plug-in (see the signature). It is free, but it is not easy to configure. Be prepare to invest some time.
There are 2 possibilities:
1) you can try to do it yourself. Road map:
* Spirit should be in "Read/Write Automation Mode" (I mean not in "Write only" and not in "Update").
* Follow "Installation instructions" and "Quick start" from "Documentation" section.
* Make "Generic Startup preset" from "Presets" section running. I am not sure, but in case encoders on Spirit send encoders messages (not continuous values like simple knobs), you will need to change "Value" Action option for them from "Direct" to "Endless". Note, you still get no feedback at that point.
* Switch to "Feedback", select "S1 Fader :: Parameter Value Monitor", add "New" (button) action, "Move up" (button) to make it first, configure it as (change "Undefined" to) "MIDI", (change "CC" to ) "<Use Ctrl MIDI>", value (change "0" in the first box to) "Value".
* Your first Fader should have "Feedback" now ( moved when you move the fader in Sonar, on Project load and automation). If not, recheck mode on Spirit, "Output" in Sonar preferences and parameters in the previous step.
* "Copy" the action and "Paste" it ("Move Up" to make it first, not really required, just for aesthetic...) to all Faders feedbacks.
All that sounds complicated, but it will take less time for me to complete all steps then for writing this post
And so option...
2) contact me to organize TeamViewer session for 15-30 minutes and we will make it running together.