sysmessages table issue
This is the expected behavior for system compatibility views from SQL Server 2012+:


  When referenced in a user database, system tables which were announced
  as deprecated in SQL Server 2000 (such as syslanguages or
  syscacheobjects), are now bound to the back-compatibility view in the
  sys schema. Since the SQL Server 2000 system tables have been
  deprecated for multiple versions, this change is not considered a
  breaking change.
  
  Example: If a user creates a user-table called syslanguages in a
  user-database, in SQL Server 2008, the statement SELECT * from
  dbo.syslanguages; in that database would return the values from the
  user table. Beginning in SQL Server 2012, this practice will return
  data from the system view sys.syslanguages.


You're probably going to have to fix your database to not use the same names as  deprecated system tables (now system views in the sys schema).