I suggest you to use the Infopath onLoad Rules so as to set the value you need.
Hi Ramses,
First I want to mention I figured it out: when you read a CheckBox into a text variable you get True or False, but when you go to write it back it must be all lowercase, go figure. This solved the issue: fn-ToLower({WorkflowVariable:OldGlobalFlag})
They do start a new form with the Add Item link or button, but sometimes they need to start a new workflow for the same customer with all of the fields identical except for a few that need editing, so that's why we have a Copy Form function that unfortunately is done in a workflowe. That workflow does use Create Item, that's how this is getting pulled off. It's being done this WEIRD way because that's how it was set up by the contractor before I took over, and that concept of launching a workflow to creaet a new InfoPath form that's filled out from a previous form is now in the minds of all the users in the USA, Europe, Japan and Indonesia, and Data Management is not about to "re-train" users in 4 different countries, lol. So I'm stuck with it. Another challenge was reading the Repeating Section control's dynamic number of added rows and writing THAT to a new InfoPath form. But perserverance paid off, I just would have never used a workflow. As a .net developer I always write out the field values of forms to a table anyway (helps with auditing and stuffing it into oracle for reporting), so I would have simple imported and populated the form with a button click. Oh well, it's done!