Well, I'm following along with the wiki, and for each input I need I set the previous_output by supplying a tx hash and the output index. However, constructing the previous output that way creates a default validation struct for the output_point. The default validation struct uses a default constructed output, which is invalid. This leads the unorganized, newly created tx to have fees() return 0 as all inputs are technically 'missing' due to them referencing a default constructed previous_output.validation struct.