I noticed some annoying differences between nn.Module and ScriptModule
torch.__version__ = 1.4.0
Example:
class DataClass(nn.Module):
    my_data: List[int]
    
    def __init__(self):
        super(DataClass, self).__init__()
        self.my_data = []
    
    def forward(self, new: int):
        self.my_data.append(new)
        return self.my_data

nn.Module:
dat = DataClass()
dat(0)
dat.my_data.append(1)
print(dat.my_data)
>>>  [0, 1]

ScriptModule
dat = DataClass()
script_dat = torch.jit.script(dat)
script_dat(0)
script_dat.my_data.append(1)
print(script_dat.my_data)

>>>  [0]