What's the context of your code, is it uberASM? Also, what are you doing after loading the RAM address into the accumulator? Since you checked the RAM in real time and it's updating,
LDA $77 should
get whatever is the current value of that into the accumulator, and chances are you're mistreating that value somehow (i.e. overwriting the accumulator). Try storing it to some free RAM right after loading it and check if it's working (if you haven't done so already).