This is a common issue for site which have a long list of complex Custom options. At some point adding a new options will save and remove the new options. More alarming is when this happens after a server move. A product may have hundreds of Custom options which once saved suddenly vanish.
The problem is that magento passes all custom options through the URL.. bursting through the normal php limit. These limits are in place to mitigates the possibility of denial of service attacks which use hash collisions and the usual limit is 1000. This limit applied to $_GET, $_POST and $_COOKIE superglobal separately. To increase simply add
max_input_vars = 10000 (or similar) in your php.ini
This does of course leave you potentially vulnerable but there is little choice in this scenario.