Hi Ned,
URP Forward+ relies on normalized screen space UVs to select the correct tile for lighting.
In the custom shader, ensuring that the input data is set correctly fixes the corruption. (E.g. Adding l.43 lightingInput.normalizedScreenSpaceUV = GetNormalizedScreenSpaceUV ( input . positionCS ) ; )
Hope this helps !