Hello,
The behavior you are getting is caused by the fact that the product pages - i.e. Pages that represent a product formed by a Page and a connected SKUInfo - primarily rely on storing the naming (translatable) data in the Page object (TreeNode + Document + coupled table records).
In particular, the fact that you're seeing an empty name in the product edit UI, while there is a value in SKUInfo's SKUName column in the DB is because the UI is getting the data from Page's DocumentSKUName column, which is probably empty.
You can find some more details on the structure at
Page database structure - Products
There is also an API example for managing product pages at
API examples on product pages management
A short conclusion is that you need to work with page (document) fields as well if you're connecting the two:
...
// Synchronize SKU name with document name in a default culture
node.DocumentSKUName = skuInfo.SKUName;
...
An important note comes in context of multilingual environment: As the SKUInfo is not multilingual and only represents default language data, the value for SKUName (and SKUDescription and SKUShortDescription) field is taken from the default culture version of the Page and its column DocumentSKUName (and DocumentSKUDescription and DocumentSKUShortDescription respectively).
Moreover, if versioning/workflow is turned on, the data being edited in the UI are taken from the latest edited version, stored in appropriate CMS_VersionHistory table record's NodeXML column (which serializes all the fields of Page = TreeNode + Document object/table and SKUInfo. Therefore a manual update approach needs to address all these properly to keep the values in sync.
Looking at your code, the initial change suggested for STEP 4 would be
...
testNode.NodeSKUID = newTestSKUID;
testNode.DocumentSKUName = newTestSKU.SKUName;
...
testNode.Update();
..
You can try to start with this simple change according to your needs and if needed add necessary calls to ensure the proper page version is updated with the SKU data you're connecting to.
Hope this helps!
Zdenek