I have 2 objects that are driven identically for the nodes that are involved with pumping out the material. The image on the left is the Material Preview. The image on the right is the Render
The icosphere rainbow is a single object and is rendering correctly.
The projected donut/whisk looking object is a result of curves on points. I can tell that I've captured the surface points correctly because when I allow the gradient to cover the entire object, the gradient stretches on the longer stalks in the back. When doing it naively, the gradient follows the "water level."

Here is the geo-nodes for the broken one

Here is the geo-nodes for the sphere

They have identical materials.