Yes you can have custom forms for content types. You need to set properties for the content type, and this can be done in various ways. Below is the PowerShell function which will do the job.
I have not fully tested the code, but I think this can be helpful
function SetCustomForms-InContentType()
{
param(
[Parameter(Mandatory=$true)][string]$url,
[Parameter(Mandatory=$false)][System.Net.NetworkCredential]$credentials,
[Parameter(Mandatory=$true)][string]$ContentTypeName
)
begin{
try
{
#get Client Object
$Context = New-Object Microsoft.SharePoint.Client.ClientContext($url)
$Context.Credentials = $Credentials
#Load web object
$web = $Context.Web
$site = $context.Site
$Context.Load($web)
$Context.Load($site)
$Context.ExecuteQuery()
}
catch
{
Write-Host "Error while getting context. Error -->> " + $_.Exception.Message -ForegroundColor Red
}
}
process{
try
{
$contentTypes = $Context.Site.RootWeb.ContentTypes
$Context.Load($contentTypes)
$Context.ExecuteQuery()
$contentType = $contentTypes | Where {$_.Name -eq $ContentTypeName}
$contentType.EditFormUrl = "Your Custom URL"
$contentType.NewFormUrl = "Your Custom URL"
$contentType.DisplayFormUrl = "Your Custom URL"
$contentType.Update()
$Context.Load($contentType)
$Context.ExecuteQuery()
}
catch
{
Write-Host ("Error -->> " + $_.Exception.Message) -ForegroundColor Red
}
}
end{
$Context.Dispose()
}
}
$credentials = Get-Credential
$Url = 'http://YourSite'
SetCustomForms-InContentType $Url $credentials "Your Content Type Name"