Functions and blueprint libraries would reduce the crowing in the Event Graph and you have the Collapse Graph option aswel. Readability is always good.
As for performance, you might want to check if everything done in the Event Tick is really necessary at each tick, since this might have an impact on your frame times, so the best course of action is to divide the actions there with a sequence node, unplug them and take notes on how much time you are increasing with each action. The second step, would be an analysis to know if you really needs them to happen each tick or if you can execute that action at certain intervals, ie each 100ms or each 200ms, so you can like accumulate on a variable the elapsed time since last tick (you can have several) and once a certain amount is reach you reset the counter and do the action.
Hopefully my explanation makes sense and good luck.