So I (accidentally) managed to find what was causing my problem.
I had inserted some test records via interactive SQL, then during dev tried to edit those records. The problem was...drum roll... I forgot to commit the manually inserted records! The records would be locked by interactive SQL until either commit/rollback or (in my case) close interactive SQL. I guess by fluke everytime I ran into this problem, it was with one of these manually inserted records.
So, nothing to see here. Just an SQL Anywhere newbie mistake. Thanks all for your help.