Each successive batch backpropagates through the timesteps of that batch AND the timesteps of all the previous batches.
You need to detach or repackage the hidden state before running each batch.
# detach
model.hidden.detach_()

# or repackage
model.hidden = Variable(model.hidden.data, requires_grad=True)