I'm not clear on what you dislike about F#. While it favors a functional programming style, it also improves on imperative programming in .NET in many ways. I can't think of any C# code that can't be replaced by functionally identical--and much shorter--F# code (unsafe code being the only exception that comes to mind).
Even a mutable type representing, for instance, a database record
class Employee {
public Employee(string firstName, string lastName, int age) {
this.FirstName = firstName;
this.LastName = lastName;
this.Age = age;
}
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
can be reduced to the following in F#:
type Employee =
{ mutable FirstName : string
mutable LastName : string
mutable Age : int }
And that's supposed to be C#'s cup of tea.
When you run into a feature F# lacks, it generally suggests there's a better way. That's a good time to stop and analyze the shortcomings of the typical imperative approach.
Indeed, F#'s greatest strength may be that it is a multi-paradigm language. You can use OO to structure your project, and functional programming "in the small" to organize your modules--no single style has to dominate. It merely increases the size of your toolbox.
If there are specific tasks/concepts you're having trouble porting to F#, you should mention them so others can offer solutions.