First get the computations working with a standard prefix syntax first. Don't use use infix notation for right now. Just get it to work with standard prefix syntax.
Here's a short example where I make some tensor-like product. First I define how the tensor product works. I don't use infix notation, but instead use the common prefix notation of Mathematica programming:
myTensorLikeProduct[a_ + b_, c_] := myTensorLikeProduct[a, c] + myTensorLikeProduct[b, c]
myTensorLikeProduct[a_, b_ + c_] := myTensorLikeProduct[a, b] + myTensorLikeProduct[a, c]
Once I know I've written out the rules correctly and tested it to make sure it works, I can then make an infix notation for "myTensorLikeProduct"
<<Notation`
Notation[x_ \[CirclePlus] y_ \[DoubleLongLeftRightArrow] myTensorLikeProduct[x_,y_]]
The infix notation now works.
So in short, the first step is to get your algebra to work with prefix notation using common Mathematica programming. You can do this using UpValues, and Downvalues etc.
Only once you have it working with prefix notation should you begin to worry at all about making an infix notation.