You mentioned that you are unable to write if the data is 20 byte or more. Are you able to read and write if the data is less than 20 bytes.
Is it only happening if it is 20 or more. Also regarding the address hope you are doing normal operation since A18 stands for Multi plane operation and block address for normal operation.
Can try adding the delay after programming and try to read and check if you are seeing the same issue.