Alright, so anyone thinking about using the Cairo_nsgl fork, digging into their code, they are doing things with the textures of the context. No matter what I tried to do, I could not get it to stop altering the texture I was creating for Syphon.
So instead, given I was going through the process of creating a texture anyways, I changed to using Cairo with an image surface. It writes directly to a buffer that I convert directly in to a GL_TEXTURE_RECTANGLE_EXT and SyphonServer can use that directly.
Makes the code so much smaller. The maintainer of Cairo_nsgl hasn’t touched it in 4 years so I am not sure it’s even worth investing in at this point.
So problem solved.