Without even looking at your blueprint - whenever i had a case that some function acted “weird” the first time and then normal all other times it was either because
a) I used a variable that had a bad value assigned initially or
b) I used a variable and THEN assigned a value to it while it obviously should have been the other way round
Oh well at least for me it was always these 2 mistakes whenever a function was weird “the first time” i called it.