Стрелочная функция получает внешний, по отношению к себе, контекст;
Выше вариант с currentTarget правильный.
не знаю, как это исправить, кроме как переделать функцию на ES5, но хотелось бы оставить стрелочную
Стрелочные функции это инструмент, который нужно применять по назначению, если для решения вашей задачи можно написать function declaration, то лучше не усложнять себе(и тому, кто будет читать ваш код) жизнь, а сделать именно так.