Why is source and/or subsource for some donations, interactions not what is expected? If the action created a constituent record, why is the "Origin Source Code" on the constituent record not what is expected?
When a constituent comes to your site, a session is created. At that time, a source/subsource may be set. During the constituent's session, the session may take multiple actions on your site. Those actions may be configured to set various source/subsource variables. However, the constituent's session will maintain the first source/subsource that was set; it will not update based on any action taken during that session. So any action taken during that session will show the first source/subsource not subsequent source/subsources.
For example: Let's say that the constituent comes to your site from a link in an email that is configured to set a source of "Fall2012". The constituent then clicks around on your site eventually clicking on a link to a donation form that has a source in the URL of "Run2012". The constituent also then takes action on an alert that has a source in the URL of "Act2012". If you run a report on the donation and on the alert interaction, the source for both will show "Fall2012" as that was the source that was associated with the session.
Note that this behavior can be reversed. If the behavior is reversed, than the last source in the session will always win instead of the first. If this change is done in the example above, both the donation and the alert interaction will have a source of "Act2012". In no scenario will the donation and/or interaction will show a source of "Run2012" as it is neither the first nor the last source in the session. Contact support to reverse this behavior.