Define this auto-enter calculation on each of your DBA fields:
If ( IsEmpty ( CheckBoxField ) ; self ; PutNameOfMatchingAddressFieldHere )
For least confusion, you'll probably want to clear the "do not replace existing value" check box.
Thank you Phil, that worked! I used a check box with Yes and No values for my "Same as Legal" field, but hid the No part of the field so it will only allow user to check Yes. As long as the YES is checked, it will populate the Legal data onto the DBA fields. If I were to edit the DBA fields later on (let's say they change their DBA address down the road) then it will let me edit it, but reverts back to the Legal info again once I leave the field. This I notice happening only if the Yes button is still checked. If I uncheck Yes, then edit the DBA fields, it will save whatever new data changes I put in the DBA fields.
Unless you can think of a simpler solution, I think this will work fine. We would just have to be sure to uncheck the Yes box right after the data populates so that editing of the field's data can be done in the future if need be.