Issues installing patches on SQLserver 2008
Here is a good place to start: https://support.microsoft.com/en-us/kb/969052

I ran into a similar issue as you and this allowed me to fix it. The script on that page ended up showing me all the items that needed to be fixed. In my case, the original install happened over a network share, which no longer existed. Using the output from the script, I manually copied the items to the local Windows installer cache.

Here is example of output of what it found that I did not have to fix:

================================================================================
PRODUCT NAME   : SQL Server 2008 R2 SP2 BI Development Studio
================================================================================
  Product Code: {312E8540-0799-45D5-A02E-DFB8FCA93CCA}
  Version     : 10.53.6000.34
  Most Current Install Date: 20151113
  Target Install Location: 
  Registry Path: 
   HKEY_CLASSES_ROOT\Installer\Products\0458E21399705D540AE2FD8BCF9AC3AC\SourceList
     Package    : sql_bids.msi
  Install Source: \x64\setup\
  LastUsedSource: n;1;\\server\with\path\that\no\longer\exists\SQL Server 2008 R2 Enterprise\x64\setup\

 !!!! sql_bids.msi DOES NOT exist on the path in the path \\server\with\path\that\no\longer\exists\SQL Server 2008 R2 Enterprise\x64\setup\ !!!!

 Action needed, re-establish the path to \\server\with\path\that\no\longer\exists\SQL Server 2008 R2 Enterprise\x64\setup\

Installer Cache File: C:\Windows\Installer\12b7423e.msi

    Package exists in the Installer cache, no actions needed.
    Any missing packages will update automatically if needed assuming that
    the LastUsedSource exists.

    Should you get errors about C:\Windows\Installer\12b7423e.msi or \\server\with\path\that\no\longer\exists\SQL Server 2008 R2 Enterprise\x64\setup\sql_bids.msi then you
    may need to manually copy the file, if file exists replace the problem file, 
    Copy and paste the following command line into an administrative command prompt:

     Copy "\\server\with\path\that\no\longer\exists\SQL Server 2008 R2 Enterprise\x64\setup\sql_bids.msi" C:\Windows\Installer\12b7423e.msi


For that item, I did nothing. However, here is an example of something that it needed:

SQL Server 2008 R2 SP2 Database Engine Shared Patches Installed 
--------------------------------------------------------------------------------
 Display Name:    GDR 1617 for SQL Server Database Services 2008 Core Shared (64-bit) (KB2494088)
 KB Article URL:  http://support.microsoft.com/?kbid=2494088
 Install Date:    20120227
   Uninstallable:   1
 Patch Details: 
   HKEY_CLASSES_ROOT\Installer\Patches\17817DD65FBE36A47AA93B8ADF0CE829
   PackageName:   sql_engine_core_shared.msp
    Patch LastUsedSource: n;1;c:\be3c4c3dfe15678dec7048ab989c4f\x64\setup\sql_engine_core_shared_msi\
   Installer Cache File Path:     c:\Windows\Installer\f696075.msp
     Per SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\17817DD65FBE36A47AA93B8ADF0CE829\LocalPackage

!!!! c:\Windows\Installer\f696075.msp package DOES NOT exist in the Installer cache. !!!!

     Action needed, recreate or re-establish path to the directory:
       c:\be3c4c3dfe15678dec7048ab989c4f\x64\setup\sql_engine_core_shared_msi\ then rerun this script to update installer cache and results
     The path on the line above must exist at the root location to resolve
     this problem with your msi/msp file not being found or corrupted,
     In some cases you may need to manually copy missing files or manually
     replace the problem file, 

     Copy "c:\be3c4c3dfe15678dec7048ab989c4f\x64\setup\sql_engine_core_shared_msi\sql_engine_core_shared.msp" c:\Windows\Installer\f696075.msp

     Replace the existing file if prompted to do so.

     Use the following URL to assist with downloading the patch:
      http://support.microsoft.com/?kbid=2494088


As you can see, it tells you what to copy and where to copy it to. In my case, I ignored the source location and just copied the listed files from a known good installation location (iso, installation media, local folder, or whatever has the installation files for that version of SQL Server). After that, I was able to finish patching SQL Server to the point where I could then install the latest service pack.

The difference between the two items above is the first one, even though it cannot find the file in the original location, the file is in the local Windows Installer cache where as in the second one, the original location does not exist AND the file is not in the windows installer cache.