FYI: A process that specifies a BO as INPUT will make Aware (behind the scenes) physically re-read that BO's record from the database. Its not passed "in memory". The instance ID is passed only.
So if the record doesn't exist yet (because it hasn't been saved) it cannot be read during the "resolve INPUT BOs" phase.
In the Logger, you'll see a "-1" passed as the ID - because a real ID doesn't exist yet.
So, I believe you're out of luck with that strategy.
"The button is throwing the following error" - thats not an error, its just telling you not to monkey with the tricky generated code.
Its OK to have a button there, but per my 1st stmt., you can't pass the unsaved record to another process.
IMHO, If this is important, then revise your strategy to create the record, then edit it.
Set a flag that the record is "temporary" in case the user doesn't follow thru with full creation (the Save button can call a process after save to flip a field, so you know the user really Saved the rec) so a process can clean up these unused/not-really-created records.
OR, find a way to set the values in Javascript. The button can launch a script.