I believe the code to calculate the package length values is incorrect in aml_generator.c - specifically in the functions:
aml_write_size and aml_get_size_length. The issue is that the values at which an extra byte is determined to be needed are incorrect.
Within the Intel ASL compiler sources you can see the correct algorithm in: compiler/asllength.c
I am also attaching what I believe is fixed code in a C file.