The problem you are having, I think, is failing to handle limit conditions. You want to change the increment value when the fade value equals or exceeds the valid range. You want to apply the increment regardless of the actual value.
Create a new (global) variable, fadeIncrement, with an initial value of 5.
If fade equals or exceeds 255, change fadeIncrement to -5. If fade equals or is less than 0, change fadeIncrement to +5.
Add fadeIncrement to fade, unconditionally. Apply the fade value, unconditionally.