It may not have existed when OP created this thread, but there is a version of SetTimer that takes a delegate now, and you can pass arbitrary values into the delegate when you create it, e.g.,:
FTimerDelegate SomeDelegate = FTimerDelegate::CreateUObject(this, &Redacted::FunctionName, PayloadParameter1, PayloadParameter2);
TimerManager.SetTimerForNextTick(SomeDelegate);
void FunctionName(PayloadParameter1, PayloadParameter2)
{
}