When you access an interface variable (except a temp variable) in an FB, the code in the background combines AR2 as the base address and adds the offset for the variable to give the final address to access the variable. This is the basis for multi-instance - AR2 is setup to point to the base address of the interface data for the instance, and then in the instance you refer to the offset. With a single instance AR2 will be set to zero, hence your code works, with a multi instance you need to add AR2 to access the same variable.