Hi Drew,
I don't think you need IUltraCalcParticipant, unless you want to implement design-time support for your objects. To actually have your objects participate in a the calc network as the source value for formula, what you would need to do is implement an UltraCalcReference. You would derive a class from RefBase. This is quite complicated, however, and I don't think there is any documentation or samples on this.
A much easier way to do it would be to simply use a NamedReference. You can add a NamedReference to the NamedReferences collection on the UltraCalcManager. Then all you have to do is change the formula on the NamedReference to reflect the current value of your object.