Doomsword,
Based on the screenshot tmp.png, I can see that the FC is set for "standard access", ie not optimized. This means that the temp tags are using absolute addresses just like they would have in the 300's, and the local memory is not initialized.
Best practice is to make sure you write to your temp tags before you read them. That can be a pain to fix, so it may be easier to just clear out the data. You have two options for initializing your temp tags:
1) Switch to optimized, which will initialize the tags for you, but could potentially affect your program's execution. 75% of the time, when I see standard code in a 1500, it is because it was migrated from a 300, and things COULD be optimized, but no one went and changed the settings in each block. The other 25% of the time, there is a reason the code is standard access.
2) Clear out your temp memory at the beginning of each block. Doing a Fill of 0 into everything could work, but I'm not sure how that would affect your REALs.
Do you know if optimized blocks can be read from HMI? I see there's option in HMI (we use legacy for compatibility with older stuff), but has this been tested?
We had a lot of issues with 1500s, I think it's mostly because we tried to program it as 400, and another being compatibility with technological packages software on PCs which are also part of automation in my company.