In Outlook 2003 double clicking creates a temporary file which for PDF is what is displayed in Adobe Reader. If you edit that file, earlier versions allowed you to save the temporary file, whereas in recent versions the file is read-only. This was deliberately introduced to attempt to avoid the data loss that was prevalent when people saved to a temporary file. I don't recall that the saved temporary file was updated in the message itself, and it certainly isn't in current versions.
Assuming you are always forwarding to the same location, the following macro may help. From the original message, save the attachment(s) to the preferred location in the macro (here shown as "C:\Path\"). Make your edits and save. Then with the message still selected, run the macro which will create a forwarding message with the revised attachment(s).
Option Explicit
Sub ForwardUpdatedPDF()
Const strPath As String = "C:\Path\" 'The location where the attachment was saved
Const strTo As String = "someone@somewhere.com" 'the recipient
Dim i As Long
Dim olInsp As Inspector
Dim wdDoc As Object
Dim oRng As Object
Dim olItem As MailItem
Dim olUpdatedItem As MailItem
Dim strPDFName As String
Dim strMissing As String
strMissing = ""
Set olItem = ActiveExplorer.Selection.Item(1)
Set olUpdatedItem = olItem.Forward
With olUpdatedItem
.To = "someone@somewhere.com"
Set olInsp = .GetInspector
Set wdDoc = olInsp.WordEditor
Set oRng = wdDoc.Range(0, 0)
.Display
oRng.Text = "Updated PDF attached"
End With
For i = olUpdatedItem.Attachments.Count To 1 Step -1
If LCase(Right(olUpdatedItem.Attachments.Item(i).FileName, 3)) = "pdf" Then
strPDFName = olUpdatedItem.Attachments.Item(i).FileName
olUpdatedItem.Attachments.Remove (i)
If FileExists(strPath & strPDFName) Then
olUpdatedItem.Attachments.Add strPath & strPDFName
Else
strMissing = strMissing & strPath & strPDFName & vbCr
End If
End If
Next i
If Not strMissing = "" Then
MsgBox "The PDF file(s)" & vbCr & strMissing & _
"do(es) not exist!"
End If
lbl_Exit:
Set olItem = Nothing
Set olUpdatedItem = Nothing
Set olInsp = Nothing
Set wdDoc = Nothing
Set oRng = Nothing
Exit Sub
End Sub
Private Function FileExists(filespec) As Boolean
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(filespec) Then
FileExists = True
Else
FileExists = False
End If
lbl_Exit:
Exit Function
End Function