You don't have to compensate the position of the tangent, if you use
c4d.Matrix.MulV(self, v)
to transform the direction vector.
import c4d
from c4d import gui
def main():
pointCount = op.GetPointCount()
mat = c4d.utils.MatrixRotX(c4d.utils.DegToRad(45.0))
for i in range(0,pointCount):
point = op.GetPoint(i) #Point Vector
point = point * mat
tangent = op.GetTangent(i)
vl = tangent['vl'] #Left Tangent Vector
vr = tangent['vr'] #Right Tangent Vector
vl = mat.MulV(vl)
vr = mat.MulV(vr)
op.SetPoint(i,point)
op.SetTangent(i, vl, vr)
op.Message (c4d.MSG_UPDATE)
c4d.EventAdd()
if __name__=='__main__':
main()