Hi Kaknarr,
I had a similar problem after upgrading SEPM from v11 to v12.1
Clients were showing up in sepm as offline, and after opening a job with symantec i was told my only option was to rebuild my sepm, an option i wasn't content with.
After searching the web i found you can access the sepm internal db by using the dbisqlc.exe tool found in this location C:\Program Files (x86)\Symantec\Symantec Endpoint Protection Manager\ASA\win32
Log in with DBA user account and select "Connect with an ODBC Data Source"
Once connected execute the following cmd to veiw entries for any client
SELECT * FROM SEM_CLIENT WHERE COMPUTER_NAME = '(computer name here)'
You will probably see multiple CLIENT_ID entries for clients that are off line, to fix do the following.
1. Stop smc service on client, then update sylink.xml file if it is not correct on client
2. Delete all CLIENT_ID entries in db by using following cmd
DELETE FROM SEM_CLIENT WHERE CLIENT_ID = '(client id here)'
3. Refresh SEPM console and client should be gone
4. Resync with AD and client should reappear
5. Restart smc service on client
6. Refresh the SEPM console and the client should now show as online with a green tick
Hope this helps