I found solution and sharing for anyone who comes after me in the future.
You need to override the objectdatasource updating method to replace the param names. This is only possible if the objectypename property of the objectdatasource is not set or else they will be read only.
Here is my example:
protected void ObjectDataSource1_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
foreach (string currentKey in e.InputParameters.Keys)
{
if (currentKey.Contains("."))
{
string newKey = currentKey.Replace(".", "_");
object myValue = null;
if (e.InputParameters[currentKey] != null)
myValue = e.InputParameters[newKey];
if (e.InputParameters.Contains(newKey))
e.InputParameters.Remove(newKey);
e.InputParameters.Add(newKey, myValue);
e.InputParameters.Remove(currentKey);
}
}