Не могу сказать, что не так, потому что вы не показали достаточно кода, но если бы я рискнул догадаться, почему он работает с DebugPrint впереди, я бы сказал, что параметры, отправленные parseString, являются ByRef и обновляются,При втором вызове результат должен немного отличаться.Попробуйте выполнить два отладочных оттиска подряд:
Debug.Print "--->" & parseString(curpos, dummy, delimit) & "<---"
Debug.Print "--->" & parseString(curpos, dummy, delimit) & "<---"
и посмотрите, не меняется ли значение каждый раз.