It's a common mistake to use inheritance because your objects share properties. Inheritance is appropriate when your objects have shared behavior and/or have an "is-a" relationship (e.g. car is a vehicle). Also consider how you will query for the objects; do you need to query for a base class and have NHibernate return any derived class?
An interface may be a better choice in your case. This also resolves the differently named Id columns because you can define a property named Id that accesses the actual column.
public interface IMyEntity
{
int Id { get; set; }
}
public class MyClass : IMyEntity
{
public int Clcnmb { get; set; }
public int Id
{
get { return Clcnmb; }
set { Clcnmb = value; }
}
}