You are probably setting your matrices inside of your app::draw() method. The tr.nextTile() method sets up the correct matrices for the tile, so if you change the matrices after that you undo the correct tiling behavior.
A common (enough) pattern for dealing with this is to set your matrices in update(). That way, you can think of draw() as purely presenting the things you have, without regard for where they are being presented.