For performance efficiency, Oracle uses caching with a default cache value
of 20. That means that when you enter a transaction, 20 numbers are read
into memory. The next time someone wants a number from the sequence, Oracle
reads memory for the next number. It doesn't have to perform a disk I/O to
read the next number from the sequence.

That means that when memory is cleared after you commit a transaction and
exit the form, numbers left in the cache are lost. That's why you get
gaps in the number sequence between 1 and 20.

You can avoid the problem by changing the sequences as follows:

ALTER SEQUENCE XXX NOCACHE;