As far as I understand, the program determines the indifference point to be the immediate reward value of the question when the bottom limit's maximum and top limit's maximum differ by 1 (the standard program differed by $0.5, but I changed this because we are not using $0.5 increments)
Yes, that is correct. Quoting from the script's comments:
"As soon as the difference between the respective maximum bottom limit and maximum top
limit reaches $0.50, the corresponding variable amount is recorded as estimate of the
respective indifference point."
Is there any way to fix this? It just appears that the IP is not accurate and is randomly selected between the value of the bottom limit's maximum and the top limit's maximum.
That's how the Richards et al. adjustment procedure works  and as such there is nothing to fix. It's a constraint on the procedures resolution / measurement error. Of course, you could simply go ahead and always set the 0-delay IP to 10.
I was also wondering how to determine the k value from the data
You need a program that can do proper curve fitting (as detailed in Richards et al.). I don't think SPSS has that capability.
 Edited to add: It is, of course, conceivable that Richards et al.'s description of the adjustment algorithm is inaccurate and/or incomplete (i.e. contains ambiguities, bonafide mistakes or omits some important aspects). In other words: Perhaps the "true" algorithm ought to work differently in some fashion than the info available in their paper suggests. It is no less conceivable that my Inquisit implementation of said algorithm contains (a) mistake(s), despite my best efforts to the contrary. I am not aware of any, but that does not mean none exist. If you (or anyone else) should know of any such issue, I'd very much appreciate you pointing them out. Thanks!