After some time of debugging, I realized that depending on the angle - typically under and over n*45 degrees - scipy adds a row and a column to the output image.
a simple test of the angle adding one to the indices solved my problem.
I hope this can help the future reader of this topic.