Materal world position and normals problem

I created a material that is tiled the same no mater where it is in the world or no mater what the scale. This works fine until I plug in the normal then I get this error.

[SM5] (Node If) If input B must be of type float.
[SM5] (Node PixelNormalWS) Invalid node PixelNormalWS used for Normal input.

This is the code

How do I fix this?