Moving Tables Indexes to Separate file / file-groups, What Happens?
Your example should indeed work but it's not the recommended approach. By doing a drop/create on the CL followed by a drop/create in the NC, you're rebuilding the NC indexes 3 times.


Drop CL = table converts from cluster to heap, which requires NC rebuild
Create CL = table rebuilds from heap to cluster, which again rebuilds NC
Drop/Create NC = rebuilds them again


Despite your approach not being the fastest way to do this, it should work. Can't explain what's going wrong but can suggest a different method. Can you try the following:


Drop NC indexes
Run the following to drop the PK/CL and rebuild on the new FG

ALTER TABLE [lntmuser].[matter] DROP CONSTRAINT [matter_k__2]
GO

CREATE UNIQUE CLUSTERED INDEX CLIX_matter_sysid ON [lntmuser].[matter] (sysid ASC)
-- Add appropriate fill factor option etc
ON [Alternate]
GO

ALTER TABLE [lntmuser].[matter] ADD CONSTRAINT PK_Matter PRIMARY KEY (sysid)
GO
Create the NC indexes


If that works, we can go back to working out why your first script failed.

Edit: Just in case... you mentioned checking reads for the new filegroup. What are you using to check this? Are you looking at sys.dm_io_virtual_file_stats and seeing no change as the tables are fully cached in the buffer pool?