Your definition of forward and back is wrong.
That fact that the 'forward' works is pure luck.
If you are on item 5, then the next item in your database is probably item 6, and you probably inserted item 6 right after inserting item 5, so they are stored in the database in sequence. However, this does not have to be that way.
The first record in the database's table may well be item 5464.
You see this effect already when you select the previous item. The database stored item 1 before item 5, so when you select an item where the itemnumber is less than 5, item 1 is a match.
What you should do is define exactly which item number you want, or describe which item number qualifies as the next or previous.
SELECT FROM table WHERE itemno = 4;
or
SELECT FROM table WHERE itemno = 6;
If you have gaps in your item numbering, you can do the next best thing.
This means describe which item numbers qualify.
If you want the next itemno, you are looking for the smallest itemno that is larger than the current.
SELECT min(itemno) FROM table WHERE itemno > 5;
and for the 'back'
SELECT max(itemno) FROM table WHERE itemno < 5;