You should be able to define a "rate" field in your charges table and set it up with the looked up values field option to copy the matching rate from your rates table. This field can then be placed in your portal.
Under other circumstances, you could simply place the rate field from your rates table in the portal, but rates are subject to change and you don't want a rate change to alter charges records that already exist and the looked up value option avoids this issue.
The relationships are currently
rates:charge item = charges:charge item
work:job no = charges:job no
That's not enough: if you want to lookup the correct charge, the relationship must match on the company as well - and a record in charges needs to "know" which company the job is for. You could add a calculation field to the charges table for this.
NOTE: your relationships should be based on unique ID's instead of names, e.g.:
Jobs::JobID = Charges::JobID
where JobID in the Jobs table is set to auto-enter a serial number. That way you can rename an item without breaking the relationship.