if (((OrientationDiff > 355) && (OrientationDiff <359.9)) && ((OrientationDiff < 5) && (OrientationDiff > 0)))

Let's try some values in that if statement. Let's try 180. 180 is not greater than 355, so the test fails, and we do nothing.

Let's try 360 (probably unlikely to happen, but let's be inclusive). That is greater than 355. It is not less than 359.9, so the test fails, and we do nothing.

Let's try 358. That is greater than 355. It is less than 359.9. It is not less than 5, though, so the test fails, and we do nothing.

Hmmm. I can't really think of a value that is greater than 355 while also being less than 5.

Perhaps you wanted an OR (||) in the middle, rather than an AND (&&).

I'd also consider using >= and <= rather than > and <. Also, consider arranging the tests in logical order. "Greater than 355 and less than 360" makes sense, but "less than 5 and greater than 0" requires more thought than "greater than 0 and less than 5".