Currently, regardless of method of encoding, the timelock seems to be causing issues with the SET() command in the smart contract to update the weights of pools, this is happening even though other commands were used in the timelock successfully.
We have a few options:
Leave pools as they are until we migrate to a V2 in the future.
Temporarily transfer ownership of the contract back to the dev account to adjust pools and then transfer it back to the timelock. (This does create risk as commands won't be behind a timelock)
Plan to migrate to a new version of the contract with a manual migration in Q1 of 2021 and adjust the pools then.