I know that when you upload a list to Marketo that has email addresses that already exist in the Database, it will overwrite/write in information that is on the list. My question is if after the upload a data value has changed from what was uploaded, and then a smartlist uses the uploaded list to populate a campaign for an email send, will the values on the uploaded list overwrite the current values again? For example, the original first name is Jimmy, the upload overwrites it to Jim, then at another point it is updated to James, will using the uploaded list as a criteria in a smartlist/email send change it back to Jim, which is the value in the list?
No - the campaign will consider the current value. Static list is just a holder of that list - the records keep on updating. (If I am understanding your question correctly)
No, the upload is a point-in-time change. The record on the list is really only using the Marketo ID to determine who to show. If the person's record updates, it'll update the field on your list (the members of the list are static, the data within your list is not).
If you're using smart list filters to define your list, and the point of reference data changes (using your example, you only want users named "Jim"), the contact would drop off the smart list once it updates to James, and the static lists that include the contact will now list the name as "James," despite the fact that your original upload changed it "Jim." It's basically using the most-recent data on his record, not the upload as the data source.
Hope that helps!