Setting your sprite visible every tick might be a workaround, but not a real solution. You should really find the cause of the problem (= you need to understand what's going on). I'm not willing to download your project, because it is too big.
You can invert the "is flashing"-event. Problem would be that in the event of flashing, you would do nothing, meaning you would end up with an invisible sprite during flashing duration just like you had initially. That's because you did not remove the cause of your problem.
Since your sprite has the flashing behaviour, you should check if it's flashing from the start (you can see that in the debug as well). If you activate the flashing every tick in some event this could lead to the behavior you are witnessing.
Further: events run from top of the event sheet to bottom. Your "every tick: set visible"-event made your sprite visible. That means the event making it invisible is located ABOVE that event. Move your visible-event upwards in the event sheet in steps and watch if you can see the sprite or not. Once you can't anymore, the event causing the bug must be somewhere between the current position of the event and the last position of the event that you checked.