In principle, your code looks similar to what worked for me, so I don't have a definitive solution. FWIW, here is the code that is called from the FormOpen event of my Access 2003 VBA program (it uses a library function to parse the current filename):
Private Sub ConfigureOfflineMaps()
Dim sFilename As String
Dim sPathname As String
Private Sub ConfigureOfflineMaps()
Dim sFilename As String
Dim sPathname As String
With axMap.Tiles
.DoCaching(tkCacheType.Disk) = True
.DoCaching(tkCacheType.RAM) = False
dhParsePath CurrentDb.Name, sPathname, sFilename
.DiskCacheFilename = sPathname & "\" & APPLICATIONNAME & ".db3" ' dynamic, to this project
.MaxCacheSize(tkCacheType.Disk) = 500
End With
End Sub