In order to use SharePoint themes, you need to be using the Seattle masterpage. I'm not sure which masterpage you are using, but any other (even the OOB Oslo one) will not let you use custom themes and such. No one has asked yet, but before we try to dig deep into your feature first let's make sure you're using the masterpage that is compatible with SharePoint theming.
Otherwise, you'd need to do it through custom CSS. Don't know why, but I know that's the truth.
Edit: Sorry, I just really had the time to read through what you're doing. I thought you were trying to create a custom SharePoint Theme to apply via Design Manager. Now that I see you're doing it through code there's a simple solution:
I can't vouch for the URL resolution of your CSS file (that is, if the URL resolves correctly) but I do know where you need to place custom CSS files. Take a look at the sample code below:
<!--MS:<SharePoint:CssLink runat="server" Version="15">-->
<!--PS: Start Preview-->
<link href="/_layouts/15/1033/styles/Themable/corev15.css" rel="stylesheet" type="text/css" />
<link href="/_layouts/15/1033/styles/OLD/Themable/layouts.css" rel="stylesheet" type="text/css" />
<link href="/_layouts/15/1033/styles/Themable/searchv15.css" rel="stylesheet" type="text/css" />
<!--PE: End Preview-->
<!--EH: Start actual CSS Linking -->
<link href="/_layouts/15/EH/styles/master.min.css" rel="stylesheet" type="text/css" />
<!--EH: End -->
That's for the master page, there's another special trick you need for page layouts. The
<!--EH --> comments are just ones I put in. They stay as comments in the source code once the masterpage is converted but for work purposes I left them in for anyone else who has to pick this file up.
And honestly, I would deploy it to the file system. This way you can use the file across the entire farm and not have to deploy the feature over and over again to ghost it in libraries. That's my biggest gripe with the new Design Manager. Theming is done on a per site collection level which makes it a huge pain to update.